【C++】程序流程控制(中)
4.1.3switch语句
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
case 结果3:执行语句;break;
...
default :执行语句;break;
}
示例:
代码:
#include<iostream>
using namespace std;
int main()
{
//给电影评分:
//10~9经典
//8~7非常好
//6~5一般
//5分以下,不好看
int score = 0;
cin >> score;
switch (score)
{
case 10:
case 9:
cout << "经典" << endl;
break;
case 8:
case 7:
cout << "非常好" << endl;
break;
case 6:
case 5:
cout << "一般" << endl;
break;
default:
cout << "不好看" << endl;
break;}
system("pause");
return 0;
}
注意:
(1)switch语句表达式的类型只能是:整型或字符型
(2)case里面如果没有break,那么程序会一直向下执行。
例如:
总结:switch与if语句相比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间。
4.2循环结构
4.2.1while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
解释:只有循环条件的结果为真时,才执行循环条件。
示例://打印0~9数字
代码:
//while循环语句的使用:
#include<iostream>
using namespace std;
int main()
{
//打印0-9
int i = 0;
while (i < 10)
{
cout << i << endl;
i++;}
system("pause");
return 0;
}
4.2.2 do...while循环语句
作用:满足循环条件,执行循环语句
语法:do{循环语句}while(循环条件);
注意:与while的区别在于do...while会先执行一次循环语句,然后再判断循环条件。
示例://用do...while打印0到9
代码:
#include<iostream>
using namespace std;
int main()
{
//在屏幕上打印0-9
int i = 0;
do {
cout << i << endl;
i++;
} while (i < 10);
system("pause");
return 0;}
练习案例:
水仙花数是指一个三位数,它的每位上的数字的三次幂之和等于它本身
例如;1^3+5^3+3^3=153,请利用do...while语句,求出所有三位数中的水仙花数。
代码:
//do...while的使用---实现水仙花数
#include<iostream>
using namespace std;
int main()
{
int num = 100;
int a = 0;//用于记录个位数字
int b = 0;//用于记录十位数字
int c = 0;//用于记录百位数字
do
{
a = num % 10;
b = (num / 10) % 10;
c = num / 100;
if (a * a * a + b * b * b + c * c * c == num)
{
cout << num << endl;
}} while (num < 1000);
system("pause");
return 0;
}