目录
引言
C语言中的循环结构:
C,or B ?
break在分支语句的使用
应用举例
为什么会这样?
分支语句中,常用if...else编写分支语句,来作出各个条件下的判断与选择;
下文即为使用C++编写的判断平年闰年的程序。
#include
using namespace std;
int main()
{
int year = 0; //这是北京大学李戈教授在授课时编写的
cin >> year;
if (year %4 == 0) //判断方法:能被4整除,但不能被100整除
{
if (year % 100 == 0)//或能被100整除,又能被400整除,即为闰年。
{
if (year % 400 == 0)
cout <<"Y";
else
cout << "N";
}
else
cout << "Y";
}
else
cout <<"N";
return 0;
}
但在需要多次/重复判断来得出结果时,反复使用单次判断的if语句显然不切实际,就必须使用循环语句来解决问题:
以C++为例,循环可大致分为四类:
然而,不终止(或中止)的无限循环,在大部分情况下是没有实际意义的,故产生了“跳出循环”,和“结束循环”的需要,“continue”和“break”由此而生 (*╹▽╹*)
for(;;) //只打两个分号,便是最简单的一个无条件死循环;也可替换为while(true)
{
****** //这一行想填啥填啥
}
continue与break同属转向控制语句,都可在for,while,和do...while使用;
但break多用于跳出内层循环,即停止当前所处的循环,执行下一条语句;
而continue用于结束本次循环,并判断是否能进行第二次循环。
实在记不住的话,可以看看两个词的释义:(*/ω\*)
break /breɪk/ v. 打破;打断;结束,终结
continue v.(使)继续,(使)持续,(中断后)再继续,又开始
(流程图左为break,右为continue)
事实上,不只是循环语句,分支语句有时也需要break。
比较典型的便是switch语句:(←你猜为什么要这样上色?)
#include
using namespace std;
int main()
{
char grade = 'a';
cin>>grade;
switch (grade)
{
case 'a': cout <<"85~100"<
上面是一个用switch语句编写的学业等级分转化程序,可以将A,B,C,D,E五个学业等级,
转化为相应的分数范围;(e.g:输入A,即显示85~100,代表85-100分可以评为A级。)
然而,输出的却是以下内容:
a //这是我们输入的字符a
85~100//下方是输出结果
70~84
60~69
<60
error
没错,虽然输入了a,但是输出端却是把abcde全来一遍,甚至连error都不放过......
因为没加break。
switch中某一个case后的常量表达式的值与表达式的值相等,则执行该case,及其后面的所有case,包括default(如果在其后方)。故应在每个case后添上break来跳出分支。
修改后的程序如下:
#include
using namespace std;
int main()
{
char grade = 'a';
cin>>grade;
switch (grade)
{
case 'a': cout <<"85~100"<
再尝试输入:
a //输入a
85~100
d //输入d
<60
f //输入f
error
''互三连,互关注'' //这句话是我瞎打的,但是话是真的,主打一个话糙理不糙(手动狗头)
error//没错,也会输出error。
这样就正常工作了。
完结撒花!✿ヾ(◍°∇°◍)ノ゙