c语言怎么跳出while循环

#include<math.h>#include<windows.h>#include<stdio.h>voidmain(){inty;charc;printf("请输入... #include<math.h>#include<windows.h>#include<stdio.h>void main(){ int y; char c; printf("请输入您想查询的年份,范围在2000-2500年:"); while (1) { scanf_s("%d", &y); if (y >= 2000 && y <= 2500) { if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) printf("%d是闰年\n", y); else printf("%d不是闰年\n", y); } else { printf("您输入的年份不在此范围内,请从新输入!\n"); } printf("您想退出循环吗,确认请按Y或y;继续请输入年份;\n"); scanf_s("%c", &c); if (c == 'y' || c == 'Y') break; } system("pause");}哪位大神帮忙看一下,这个退出有问题 展开
 我来答
不不见不念
高粉答主

2019-01-22 · 说的都是干货,快来关注
知道答主
回答量:122
采纳率:0%
帮助的人:1.6万
展开全部

if条件语句写错了:

if(a=="#")        判断字符串相等不能用等号

if (strcmp(a, "#") == 0)       要这么写

while 是一个循环体,退出循环体的方法有:

(1)循环体条件 不成立,如:while( a>0); 当 a≤0 的时候,条件 a>0不成立,while 循环结束,退出 while 循环。

(2)在循环体内使用无条件跳出语句(break),如 while(1){if(b>5)break;}当 b>5 的时候,程序执行 break ,跳出 while 循环体,循环体被结束。

(3)在循环体内使用 函数返回 语句(return),如 while(1){if(c>8) return (XXX);},当 c>8的时候,程序执行 return,退出函数返回到上级函数。其中返回值 XXX 需要根据 函数类型进行返回。

如 int 型函数 int fun(),XXX 应为 int型,空返回值函数 void fun(),XXX 可以省略。

扩展资料:

其他语言中while循环的语法:

1、Pascal

while <条件> do <语句>

意为当条件符合时,接着做下面的语句;不符合时,退出循环。

2、C语言

do <语句> while(<条件>);

while(<条件>) <语句>;

3、Java

while(<条件>) {<语句;>}

do {<语句;>} while(<条件>);

二者的区别是do-while最少会被执行一次。

循环中可以使用continue结束当前循环,回到循环开始处开始下一次循环。也可以用break跳出整个循环。

听不清啊
高粉答主

2019-01-21 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
#include<math.h>
#include<windows.h>
#include<stdio.h>
main()
{ int y;
  char c;
  printf("请输入您想查询的年份,范围在2000-2500年:");
  while (1)
  { scanf("%d", &y);
    if (y >= 2000 && y <= 2500)
    { if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
        printf("%d是闰年\n", y);
      else printf("%d不是闰年\n", y);
    }
    else
    { printf("您输入的年份不在此范围内,请从新输入!\n");
    }
    printf("您想退出循环吗,确认请按Y或y;继续请按回车或空格后再输入年份;\n");
    fflush(stdin);
scanf("%c", &c);
    if (c == 'y' || c == 'Y') break;
  }
  system("pause");
}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳岸客愁长4169
2019-01-21 · TA获得超过3738个赞
知道大有可为答主
回答量:8810
采纳率:79%
帮助的人:311万
展开全部


跳出for循环主要有以下2中方式:

1、用break语句。如:

int i;
for(i=0; i<10; i++)
{
    if(i>3)    // 如果i>3,跳出for循环,执行printf语句
        break;  
}
printf("%d", i);

2、用return语句(一般用在函数体中,作为函数的返回值跳出该函数,也即跳出了函数体中的for循环)

int fun(int a)
{
    int i;
    for(i=0; i<a; i++)
    {
        if(i>3)    // 如果i>3,则函数执行完毕,并返回变量i的值,也即跳出了for循环
            return i;  
    }
}



追问
我用的就是break,不过退出之后为什么还输出一句和上一次结果相同的文字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三天打鱼N
2019-01-21 · TA获得超过1540个赞
知道大有可为答主
回答量:2032
采纳率:74%
帮助的人:583万
展开全部
void main() {
char cs[20];
int y;
printf("请输入您想查询的年份,范围在2000-2500年:");
while (1) {

scanf("%s", cs);
if (cs[0] == 'y' || cs[0] == 'Y')
break;
y = 0;
for (int i = 0; cs[i]; i++)
{
if (cs[i] >= '0'&& cs[i] <= '9')
y = y * 10 +( cs[i] - '0');
else
{
y = -1; break;//输入非数字值
}
}
if (y >= 2000 && y <= 2500) {
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
printf("%d是闰年\n", y);
else
printf("%d不是闰年\n", y);
}
else {
printf("您输入的年份不在此范围内,请从新输入!\n");
}
}
system("pause");

}

读入字符串 然后判断字符串内容

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
岔路程序缘

2019-01-21 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3392万
展开全部
最简单的方法:
在scanf_s("%d",&y);这一句的后面加一句:
getchar();
问题就解决了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式