搜索

break跳出循环的位置问题

查看数: 1756 | 评论数: 17 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-8-17 17:53

正文摘要:

先贴上完整代码 #include <stdio.h> #include <stdlib.h> int main() {         int i,a,b,c,d,n; //多了个变量n来让while中断     puts("请输入三位数:"); &n ...

回复

s141336 发表于 2016-8-18 22:54:22
我前来挖坟
Dear 发表于 2015-8-20 09:53:26

这个是符合条件的
chenyu 发表于 2015-8-19 15:31:02
if(i>99 || i<1000)
好像是这样的吧。
小榛鼠 发表于 2015-8-19 12:35:17
12+3+4=19;
Dear 发表于 2015-8-19 10:11:06

                              谢谢
981013 发表于 2015-8-19 10:06:32
Dear 发表于 2015-8-19 09:44
我改成了while(n==1)  去掉了break      留下了else n=0;
但输入的不是3位数仍然输出了一个错误的结果
...

n要初始化为1
981013 发表于 2015-8-19 10:06:13
本帖最后由 981013 于 2015-8-19 10:08 编辑
Dear 发表于 2015-8-19 09:44
我改成了while(n==1)  去掉了break      留下了else n=0;
但输入的不是3位数仍然输出了一个错误的结果
...

像这样:[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,a,b,c,d,n; //多了个变量n来让while中断
    puts("请输入三位数:");
    scanf("%d",&i);
    n=1;//初始化操作
    while(n==1)
    {
        if(i<100 || i>999)
        {
            puts("请输入三位数:");
            scanf("%d",&i);
        }
        else
        {
            n=0;//当i符合条件时 n被赋值为0
        }
    }
    a=i%100%10;//到这里执行计算
    b=i%100/10;
    c=i/100;
    d=a+b+c;
    printf("和是:%d\n",d);
    system("pause");
    return 0;
}[/mw_shl_code]
981013 发表于 2015-8-19 10:05:34
Dear 发表于 2015-8-19 09:44
我改成了while(n==1)  去掉了break      留下了else n=0;
但输入的不是3位数仍然输出了一个错误的结果
...

n要初始化为1
Dear 发表于 2015-8-19 09:25:22
981013 发表于 2015-8-17 17:53
楼上居然一个人也没有注意到

判断相等用== ...

一直以来都没注意到                               感谢

点评

我和你一样。  发表于 2016-8-18 22:50
小U哥 发表于 2015-8-18 17:26:14
如果是{n=0;break;},程序执行break后跳出while()语句,所以是break停止了while()语句。
Dear 发表于 2015-8-18 09:03:05
小榛鼠 发表于 2015-8-17 23:22
抱歉else{n=0;break;}这句完全是没必要的,只要留下break就够了,
你试试把n=0改成n=1也完全没影响,当 ...

哦  谢谢  我把n=0删了  运行也一样     
小榛鼠 发表于 2015-8-17 23:22:53
Dear 发表于 2015-8-17 22:07
我的意思是图片

抱歉else{n=0;break;}这句完全是没必要的,只要留下break就够了,
你试试把n=0改成n=1也完全没影响,当时不知道为什么加上去了,非常抱歉
小榛鼠 发表于 2015-8-17 18:52:28
跳出while(n=1)并且不会再回到while开头,while(n=1)循环已经结束了,
如果你有在用其它编译器的话可以试试用断点的功能,会看得很清楚
快速回复 返回顶部 返回列表