首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的break有关问题

2012-04-03 
简单的break问题按我的理解,break是跳出循环的。如一下程序#includeiostreamusing namespace stdint mai

简单的break问题
按我的理解,break是跳出循环的。
如一下程序
#include<iostream>
using namespace std;

int main(int argc, char* argv[])
{
int a;
while(1)
  {
cin>>a;
if(a==0)
break;
else
cout<<"帅"<<endl;
}
return 0;
}
输入a,如果a==0,跳出循环。

而今天我遇到问题了,下面的程序,用了break,不跳出for循环的。真够郁闷,兄弟们,解释下,非常感谢。

#include<iostream>
using namespace std;

int main(int argc, char* argv[])
{
int a,i;
int b[10]={1,2,3,4,5,6,10,12,13,14};
while(1)
  {
cin>>a;
for(i=0;i<10;i++)
{
if(a==b[i])
{
cout<<"帅"<<endl;
}
else
{
cout<<"没有"<<endl;
  break;
}
}
}
return 0;
}

[解决办法]
break放错地方了吧
应该是==退出
[解决办法]

探讨
break放错地方了吧
应该是==退出

[解决办法]
你的break 只跳出了 for loop 但没有跳出while loop

想跳出死循环~ 则还需要break一下
[解决办法]
哥们你这是跳出for循环了,但是while没跳出,所以又进for循环了。
[解决办法]
直接return跳出最外层的循环
[解决办法]
测试过了,正常退出,只是楼主的代码逻辑上有问题,参考如下代码:
C/C++ code
#include<iostream>using namespace std;int main(int argc, char* argv[]){    int a,i;    int b[10]={1,2,3,4,5,6,10,12,13,14};    while(1)      {        cin>>a;        for(i=0;i<10;i++)        {            if(a==b[i])            {                cout<<"帅"<<endl;                break;            }                        }        if(i==10)            cout<<"没有"<<endl;    }    return 0;} 

热点排行