猜数字游戏
实现一个简单的猜数字游戏,学习 while 循环语句的用法。
实例解析
while 循环语句
while 语句的一般形式为:
while(表达式)语句;
其中表达式是循环条件,语句为循环体。
while 语句的语义是:计算表达式的值,当值为真(非 0)时,执行循环体语句。使用 while
语句应注意以下几点。
(1)while 语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非 0)即可
继续循环。
(2)循环体如包含有一个以上的语句,则必须用{}括起来,组成复合语句。
(3)应注意循环条件的选择以避免死循环。
(4)允许 while 语句的循环体中包含 while 语句,从而形成双重循环。
do-while 语句
do-while 语句的一般形式为:
do 语句;
while(表达式);
其中语句是循环体,表达式是循环条件。
do-while 语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非 0)则继
续循环,否则终止循环。
do-while 语句和 while 语句的区别在于 do-while 是先执行后判断,因此 do-while 至少要执行
一次循环体。而 while 是先判断后执行,如果条件不满足,则一次循环体语句也不执行。while 语
句和 do-while 语句一般可以相互改写。
对于 do-while 语句还应注意以下几点。
(1)在 if 语句和 while 语句中,表达式后面都不能加分号,而在 do-while 语句的表达式后面
则必须加分号。
(2)do-while 语句也可以组成多重循环,而且也可以和 while 语句相互嵌套。
(3)在 do 和 while 之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。
(4)do-while 和 while 语句相互替换时,要注意修改循环控制条件
本程序主要思路
本程序主要思路是:先使用 while 循环语句控制输入密码的过程,如果 3 次输入错误,则给
出提示信息并退出程序。密码通过后,使用 while 语句控制程序流程,如果输入的数值不等于程
序给定的值,则程序一直循环运行下去,直到猜中给定的值。在这层 while 内部又用 do-while 语
句控制输入值的范围,如果输入值不在 1 和 100 之间,就要求重新输入;然后通过 if…else 语句
判断输入值的范围,并给出相应的提示信息,直到猜中给定值,程序结束
程序代码
int main()
{
int Password=0,Number=0,price=58,i=0;
system("cls");/* 清屏 */
printf("\n====This is a Number Guess Game!====\n"); /* 提示信息 */
while( Password != 1234 ) /* 当输入密码错误时 */
{
if( i >= 3 ) /* 如果输入错误次数大于 3 就退出 */
{
printf("\n Please input the right password!\n ");
return -1;
}
i++;
puts("Please input Password: ");
scanf("%d",&Password); /* 要求重新输入密码 */
}
i=0;
while( Number!=price )
{
do{
puts("Please input a number between 1 and 100: ");/* 提示猜数 */
scanf("%d",&Number);
printf("Your input number is %d\n",Number);
}while( !(Number>=1 && Number<=100) );/* 判断范围是否正确 */
if( Number >= 90 )/* 输入大于 90 的情况 */
{
printf("Too Bigger! Press any key to try again!\n");
}
else if( Number >= 70 && Number < 90 ) /* 比较大的情况 */
{
printf("Bigger!\n");
}
else if( Number >= 1 && Number <= 30 ) /* 太小的情况 */
{
printf("Too Small! Press any key to try again!\n");
}
else if( Number > 30 && Number <= 50 ) /* 比较小的情况 */
{
printf("Small! Press any key to try again!\n");
}
else
{
if( Number == price )
{
printf("OK! You are right! Bye Bye!\n");
}
else if( Number < price ) /* 相差不多的情况 */
{
printf("Sorry,Only a little smaller! Press any key to try again!\n");
}
else if( Number > price )
printf(" Sorry, Only a little bigger! Press any key to try again!\n");
}
getch();
}
return 0;
}