鲨鱼辣椒g 发表于 2021-2-12 19:53:04

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 呢

qiuyouzhi 发表于 2021-2-12 19:56:54


else if (n == 0)
不是n = 0哦

李京 发表于 2021-2-12 20:26:48

= 是复制号
== 才是判断是否相等的
虽然 二楼说了,但是还是忍不住说一下

一叶枫残 发表于 2021-2-12 20:32:53

为啥用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就不执行了,所以没跳出循环。

一叶枫残 发表于 2021-2-12 20:38:31

不理解知识补充请看下面
#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-14 16:39:02

一叶枫残 发表于 2021-2-12 20:38
不理解知识补充请看下面

真不错
页: [1]
查看完整版本: break语句 大佬帮忙看看