读书人

while语句中的break有关问题

发布时间: 2012-02-10 21:27:42 作者: rapoo

while语句中的break问题
#include <stdio.h>
int main()
{
#define TRUE 1
int month;

while (TRUE)
{
printf( "\nEnter a month between 1 and 12: ");
scanf( "%d ", &month);

if (month > 1 && month < 12)
break;

printf( "Error - the month you entered is not valid.\n ");
}

printf( "The month accepted is %d\n ", month);

return 0;
}
=======================
想问一下,这里的break中断以后,不是直接挑出while语句吗,怎么还会继续执行后面的printf提示error语句?如果我把break语句去掉,输入0或1则显示颠倒,而且程序永远不停止了。为什么?



[解决办法]
因为while的条件是true,当输入的值大于12是则不执行IF循环体的,所以跳出了WHILE循环,执行
外层循环
[解决办法]
当你输入在1到12之间是,IF成立,则跳出WHILE循环执行外层;当IF不成立时,则不执行break
执行了printf(error),永远记住IF只执行后面第一个语句;
可以理解吧。嘿嘿
[解决办法]
那时因为你没跳出去
[解决办法]
if (month > 1 && month < 12)
break;
===============================
注意了: 输入1或12, 也不满足上面的条件, 就会打印下面的Error.
LZ是不是把条件搞错了?:)

if (month> =1 && month <=12) break;

读书人网 >C++

热点推荐