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

为什么循环输入会有有关问题呢

2012-03-18 
为什么循环输入会有问题呢?cin ywhile(!y){if(y0)exit(1)cin y}为什么我的第二个输入语句会有

为什么循环输入会有问题呢?
cin> > y;
while(!y)   {
    if   (y   ==   0)   exit(1);
    cin> > y;
}
为什么我的第二个输入语句会有问题呢?

[解决办法]
cin> > y;
while(!y) { //y是零时, 进入下面循环体
if (y == 0) exit(1); //y是零时推出程序
cin> > y; //所以这一句永远没有机会执行!
}

[解决办法]
while(y) y为true或者非0值时,执行循环体 这样楼主应该能够理解了
[解决办法]
cin> > y;
while(!y) {
if (y == 0) exit(1);
cin> > y;
}
==》
while(cin> > y) { //如此即可
if (y == 0) exit(1);
}
[解决办法]
原来的形式下,
不会有什么问题。

如果确实有问题,
那么可能是 滞留的回车符号导致,检查你的 y 是否为 char类型,是的话需要清除缓冲:
cin.sync();

另外原来的方式下存在点逻辑问题:
while(!y) {
if (y == 0) exit(1); //这个永远都是执行的,因为必须输入 y 为0时候循环体才会执行
...
[解决办法]
#include <math.h>
#include <iostream>
using namespace std;
main(){
int y ;
cin > > y;
while(y) {
if (y == 0) exit(1);
cin> > y;
}

}
去掉!号,要不只能输入0,才循环执行。

热点排行