循环和判断语句
C++ 提供了以下几种循环类型:
- while循环
- do...while 循环
- for 循环
- 嵌套循环
C++ 提供了以下几种循环控制语句:
- break 语句
- continue 语句
- goto 语句
C++ 提供了以下几种判断语句:
- if 语句
- if...else 语句
- 嵌套 if 语句
- switch 语句
- 嵌套 switch 语句
此外? : 运算符也可以用作条件判断。
名词解析
1、while 循环
C++ 中 while 循环的语法:
while(条件)
{
cout<<"hello world!"
}
在这里,条件可以是任意的表达式,当条件为真时,执行循环语句;当条件为假时,跳过循环执行下一条语句。
2、do...while 循环
C++ 中 do...while 循环的语法:
do
{
cout<<"hello world!";
}while(条件);
在这里,先执行一次循环语句,然后再判断条件,条件可以是任意的表达式,当条件为真时,继续执行循环语句;当条件为假时,跳过循环执行下一条语句。如果条件设置为0,意思就是只执行一次循环语句。
3、for 循环
C++ 中 for 循环的语法:
for (int i=0; 条件; i++)
{
cout<<"hello world!";
}
在这里,先执行int i=0,然后再判断条件,当条件为真时,执行循环语句,然后再执行i++;当条件为假时,跳过循环执行下一条语句。
4、break 语句
(1)只能在循环体内和switch语句体内使用break;
(2)结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试;
(3)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
(4)只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。
总而言之,就是一个break语句只能跳出离它最近的一层循环。
5、continue语句
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
6、switch语句
C++ 中 switch 语句的语法:
switch(expression)
{
case constant-expression : statement(s);
break; // 可选的
case constant-expression : statement(s);
break; // 可选的
// 您可以有任意数量的 case 语句
default : // 可选的
statement(s);
}
switch语句必须遵循下面的规则:
- switch语句中的expression必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
- 在一个 switch中可以有任意数量的case语句。每个case后跟一个要比较的值和一个冒号。
- case的constant-expression必须与switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
- 当被测试的变量等于case中的常量时,case后跟的语句将被执行,直到遇到break语句为止。
- 当遇到break语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
- 不是每一个case都需要包含 break。如果case语句不包含break,控制流将会继续 后续的case,直到遇到break为止。
- 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
示例代码
#include "iostream"
using namespace std;
int main()
{
int num=10;
switch(num)
{
case 1:
cout<<"num=1"<<endl;
break;
case 10:
cout<<"num=10"<<endl;
break;
case 100:
cout<<"num=100"<<endl;
break;
default:
break;
}
cout<<endl;
int x=0;
while(x++<10)
{
if(x==3)
{
break;
}
cout<<"x:"<<x<<"\t";
}
cout<<endl;
int y=0;
cout<<"先用后加y++:"<<endl;
while(y++<10)
{
switch(y)
{
case 1:
cout<<"y=1"<<endl;
break;
case 10:
cout<<"y=10"<<endl;
break;
case 100:
cout<<"y=100"<<endl;
break;
default:
break;
}
cout<<"y:"<<y<<"\t";
}
cout<<endl;
cout<<"先加后用++y:"<<endl;
int y1=0;
while(++y1<10)
{
switch(y1)
{
case 1:
cout<<"y=1"<<endl;
break;
case 10:
cout<<"y=10"<<endl;
break;
case 100:
cout<<"y=100"<<endl;
break;
default:
break;
}
cout<<"y1:"<<y1<<"\t";
}
cout<<endl;
int z=0;
while(z++<10)
{
if(z==3)
{
continue;
}
cout<<"z:"<<z<<"\t";
}
cout<<endl;
cout<<"do...while:"<<endl;
do
{
cout<<"只执行一次"<<endl;
} while (0);
cout<<endl;
cout<<"while:"<<endl;
int t=0;
for (;t<10;t++)
{
switch(t)
{
case 1:
cout<<"t=1"<<endl;
break;
case 10:
cout<<"t=10"<<endl;
break;
case 100:
cout<<"t=100"<<endl;
break;
default:
break;
}
cout<<"t:"<<t<<"\t";
}
cout<<endl;
system("pause");
return 0;
}
输出结果
num=10
x:1 x:2
先用后加y++:
y=1
y:1 y:2 y:3 y:4 y:5 y:6 y:7 y:8 y:9 y=10
y:10
先加后用++y:
y=1
y1:1 y1:2 y1:3 y1:4 y1:5 y1:6 y1:7 y1:8 y1:9
z:1 z:2 z:4 z:5 z:6 z:7 z:8 z:9 z:10
do...while:
只执行一次
while:
t:0 t=1
t:1 t:2 t:3 t:4 t:5 t:6 t:7 t:8 t:9
请按任意键继续. . .