break语句 大佬帮忙看看
#include <stdio.h>int main()
{
int n,i=0,j=0;
printf("请输入整数:");
while(1)
{
scanf("%d",&n);
if(n>0)
i++;
else if(n<0)
j++;
else if(n=0)
break;
}
printf("i=%d\nj=%d\n",i,j);
}
这个程序
为啥用while(1)
当输入0的时候 不会跳出循环打印 i 和 j 呢
是
else if (n == 0)
不是n = 0哦 = 是复制号
== 才是判断是否相等的
虽然 二楼说了,但是还是忍不住说一下 为啥用while(1):因为这个程序是用来计算正数和负数的程序,只靠输入0时利用break退出循环。
下面n=0要改为n==0。
知识补充:n=0是赋值语句,它也会有返回值,对于整型int来说,返回值就是赋值的值,n=-1返回-1,n=8返回8,你这里n=0放在else if里面,返回了0,0代表假,所以else if里的break就不执行了,所以没跳出循环。 不理解知识补充请看下面
#include <stdio.h>
int main()
{
int k;
printf("赋值语句k=1的值:%d\n",k=1) ;
printf("赋值语句k=6的值:%d\n",k=6) ;
printf("赋值语句k=-8的值:%d\n",k=-8) ;
printf("赋值语句k=-559的值:%d\n",k=-559) ;
printf("赋值语句k=0的值:%d\n",k=0) ;
return 0;
}
赋值语句k=1的值:1
赋值语句k=6的值:6
赋值语句k=-8的值:-8
赋值语句k=-559的值:-559
赋值语句k=0的值:0 一叶枫残 发表于 2021-2-12 20:38
不理解知识补充请看下面
真不错
页:
[1]