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

while语句中的break有关问题

2012-02-10 
while语句中的break问题#includestdio.hintmain(){#defineTRUE1intmonthwhile(TRUE){printf( \nEntera

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;

热点排行