对于一些重复性的工作,用循环语句解决是方便的,今天我们来学习循环语句。
项目需求:输入账号、密码。判断用户是否有权进入游戏,当输入三次错误的账号密码后不允许用户继续输入。
知识点:变量和常量、数组、断点调试、循环语句与分支语句
项目实现:
继续使用上一课的代码,观察第11行到第28行
代码解释:
运行程序,发现当输入的账号密码不正确时程序并没有进入菜单,而是让大家重新输入密码。
知识点讲解:
1、最简单的循环语句
我们从最简单的语句讲起while循环。
格式:
while(条件)
{
代码块;
}
此语句的作用是判断条件的真假,若条件为真则执行循环体内部的代码块,若条件为假,则跳过循环体,执行后面的内容。
条件的真假如何判断我们下一次课再来讲解。暂时先记住在C语言中0代表假,其他数代表真,记得字符也是一种数字哟,大小为其对应的ASCII码值。在C++中,有一种变量专门表示真假,及bool变量。true表示真,false表示假.试试将程序里while括号里的1改成true,看看程序的运行效果。
在解决方案上右键添加新项目。项目名字改为循环,然后添加源文件。写入如下代码:
#include<iostream>
using namespace std;
int main()
{
int i=0;
while(true)
{
cout<<i<<endl;
i++;
}
system("pause");//使程序暂停
return 0;
}
并且在i++那一行打上断点然后运行程序。然后依次点继续就是运行程序的哪个绿色箭头,观察每次程序输出的结果。体会循环的作用并体会变量的使用方法。
2、如何跳出循环
不知道大家发现没,刚才那段代码,每次点击继续按钮,程序都会进入循环体。这是不是意味着,这个程序永远也不会停止了呢。这对于程序来说是很可怕的。你可以试试把断点取消之后在点运行看看会发生什么?我们管这种会一直循环不会跳出的循环称为死循环。滥用死循环会造成很严重的后果的。那么如何让程序跳出循环呢?
观察我们上节课代码的第21行,发现了一个break;这个语句。这就是让程序跳出循环的方法。很简单吧。现在我们在刚才的循环项目上试着加一个break;语句。
其中的if语句下节课在讲,只要知道这句话的意思是当i大于等于100时执行break语句就行了。观察输出结果,发现当运行到输出100之后程序就结束了。这就是说当运行到break语句时跳出循环。
再谈一谈循环条件,及跟在while后面的括号里的内容。若条件为真则执行循环体内部的代码块,若条件为假,则跳过循环体,执行后面的内容。那是不是如果我们控制条件的真假就可以控制程序的跳出循环了呢。将循环改成下面这样再去试者运行一下。重点体会i++的作用。
while(i<=100)
{
cout<<i<<endl;
i++;
}
i++语句除了改变i的值之外,还起到了一个非常重要的作用:改变寻环的判断条件的真假。一般的循环语句这条语句都是很重要的。
试试将上节课的程序改成下面这样,自己运行调试一下,体会两种跳出循环的方法的应用。
不要觉得这些东西太基础就不加以重视哟。有很多大公司的笔试题就是这么基础的东西。下面看一道华为公司的笔试题:
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
答案:
#include<stdio.h>
int main (){
int m;
while(~scanf("%d",&m)&&m!=0) printf("%d\n",m/2);
return 0;
}
看到了没就是一个while循环就能解决。当然了这个条件判断中有一个与逻辑暂时可能还看不太懂。
While 循环中还有一个continue,意思是结束本次循环。
while(i<10)
{
i++;
cout<<"循环开始: "<<i<<endl;
continue;
cout<<"位于continue后面的语句不会被执行"<<endl;
}
一段代码大家自己去运行一下。
练习题:
1、用while循环计算从1一直加到100的值是多少
2、思考break和continue的区别
3、思考死循环的优点和缺点
可关注我的个人微信公众号:
(豆浆and油条er)
喜欢的朋友请点个赞支持一下,谢谢!~