while循环中的判断条件,该怎么解决
while循环中的判断条件
上面的代码是我在《C Primer Plus》中看到的,while循环中能否只保留gets(choice) != NULL 或是 choice[0] != '\0', 这两个判断之间有什么区别吗?
------解决方案--------------------
前一个是保证choice有确实取到字符,后一个是保证choice不是空串。
------解决方案--------------------
去掉gets的话你的choice怎么获得数据来源,第二个条件应该是防止是个空串
------解决方案--------------------
直接按下回车
------解决方案--------------------
别被误导了 赵 提到的情况根本不能相提并论 代码的意思完全不一样
的意思 应该是
上面的情况 写成
while(exp && exp && exp)完全正常的做法
和
while (1) {
if (条件1) break;
//...
if (条件2) continue;
//...
if (条件3) return;
//...
}这样根本是两回事
char choice[20];
while(gets(choice) != NULL && choice[0] != '\0')
上面的代码是我在《C Primer Plus》中看到的,while循环中能否只保留gets(choice) != NULL 或是 choice[0] != '\0', 这两个判断之间有什么区别吗?
------解决方案--------------------
前一个是保证choice有确实取到字符,后一个是保证choice不是空串。
------解决方案--------------------
去掉gets的话你的choice怎么获得数据来源,第二个条件应该是防止是个空串
------解决方案--------------------
直接按下回车
------解决方案--------------------
别被误导了 赵 提到的情况根本不能相提并论 代码的意思完全不一样
while (exp && exp && exp)
{
//TODO
}
的意思 应该是
while(1)
{
if(!exp)
break;
if(!exp)
break;
if(!exp)
break;
//TODO
}
上面的情况 写成
while(exp && exp && exp)完全正常的做法
和
while (1) {
if (条件1) break;
//...
if (条件2) continue;
//...
if (条件3) return;
//...
}这样根本是两回事