说是break会直接跳出最内层的循环或switch语句块,不理睬if语句,那么如下程序,则是若为真直接跳出for循环,执行printf(”\n”) int main() { int m,n,res,i; printf("输入被除数和除数:"); scanf("%d%d",&m,&n); printf("%d.",m/n);//先输出整数部分和小数点 res=m%n;//取余数 for(i=0;i<Max;i++) { res*=10;//余数乘10 printf("%d",res/n);// 余数乘10后再与除数相除,输出第i+1位小数 res=res%n;//取余数 if(0==res)//若为真直接跳出for循环,执行printf("\n") { break; } } printf("\n"); return 0; } 若是如下呢,if为真时,break跳到哪里? int main() { for(i=0;i<Max;i++) { while(...) { if(0==res)//余数为0时说明除法结束,并退出,否则输出Max位小数 { break; } printf("A"); } printf("B"); } printf("\n"); return 0; } 2.不好意思哈~还有个问题比较迷糊: bool Increment(char* number) { bool isOverflow = false; int nTakeOver = 0; int nLength = strlen(number); for(int i = nLength - 1; i >= 0; i --) { int nSum = number[i] - ""0"" + nTakeOver; if(i == nLength - 1) nSum ++; if(nSum >= 10) { if(i == 0) isOverflow = true; else { nSum -= 10; nTakeOver = 1; number[i] = ""0"" + nSum; } } else { number[i] = ""0"" + nSum; break; } } return isOverflow; } |
|
10分 |
1
break是跳出最内层循环,所以这里是跳出while(…),执行printf(“B”); 然后继续for(i=0;i<Max;i++)的下一次循环 2 |
2分 |
只跳出包含if语句的那一层循环
|
5分 |
总之是这样的 for(i=0;i<MAX;i++)
{ if(判断条件) break; } 如果执行break 那么跳出for 循环 |
3分 |
在多层循环中,一个break语句只向外跳一层,执行之后的语句。
|
3分 |
第一个break退出while循环,第二个退出for循环。
|
2分 |
只是跳出它所属的那个循环
|
5分 |
break其作用大多情况下是终止上一层的循环,以C语言来说,break在switch(开关语句)中在执行一条case后跳出语句的作用。
1. break语句对if-else的条件语句不起作用。 2. 在多层循环中,一个break语句只向外跳一层。 |
记住一句话,break;只管循环,不管if的,与if没关系。所以break只跳循环,第一个跳while第二个跳if。
|
|
break应该是跳出本层循环,goto可以跳出多重循环
|
|
这个问题仿佛可以用实践来解决
|
|
2分 |
你只需要看看break属于哪个最里面的循环,就跳出谁,只跳出一次,其他继续
|
2分 |
break 在哪一层循环中,跳出哪一个循环;
while(…) { if(0==res)//余数为0时说明除法结束,并退出,否则输出Max位小数 { break; } printf(“A”); } printf(“B”); break ,跳出内层循环,所以不能执行 printf(“\n”); 直接跳出循环执行printf(“B”); |
if不属于循环,这是判断语句。
|
|
单步调试一下什么都明白了
|
|
跳出对应的if那一层循环
|
|
3分 |
break是跳出最内层的循环(while,for)或switch,if什么的跟他无关
|
1分 |
++ |
2分 |
break 跳出跟它最近的一出循环,continue则是到下次循环
|
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! |
|
呵呵,你都说跟if无关了,还“第二个跳if”啊?呵呵,打错了吧? |
|
赞成你说的 |
|
break语句事实上跳出的是最近的那层循环语句或者switch语句。特别注意的是if不是循环语句。
|
|
尝试后发现 break 只能跳出循环(最内层) 甭管里面有几个if嵌套
|
|
调试才是最重要的
|