选择语句一共分为两种:条件语句和开关语句
其中条件语句叫if语句,常见的形式为:if ... else ... ; 再复杂一些为if... else if ... else ... ;
开关语句又叫switch语句,类型于开关的使用形式常见的有 switch (var) case : ... break; case : ... break; default : ... break;。
选择语句可以实现多路分支,根据不同的条件进行选择或执行相应的代码或函数。
if语句
if语句,共有三种形式,if (){},if {} else {} 以及if (){} else {} if {}...三种形式。
第一种形式 if(){},表示如果为真,则执行语句,
使用代码实现:
#include <iostream>
using namespace std;
int main(){int b; //定义变量1cout <<"请输入一个数字,然后回车 " << endl; cin >> b ;//通过键盘输入一个数字if(b==1) //如果输入的是1,则打印输入的为1cout <<"输入的为:1" << endl;}
执行,然后输入1
请输入一个数字,然后回车
1
输入的为:1
--------------------------------
Process exited after 2.937 seconds with return value 0
如果输入其它的,则会如下输出
请输入一个数字,然后回车
2
--------------------------------
Process exited after 2.127 seconds with return value 0
第二种形式if {} else {} ,和第一种类似,只是增了一个选择,如果为真,执行A,如果为假执行B
代码为:
#include <iostream>
using namespace std;
int main() {int b; //定义变量1cout << "请输入一个数字,然后回车 " << endl;cin >> b ;//通过键盘输入一个数字if (b == 1) //如果输入的是1,则打印输入的为1cout << "输入的为:1" << endl;elsecout << "输入的不是1" << endl;}
代码执行:
请输入一个数字,然后回车
1
输入的为:1
--------------------------------
Process exited after 1.645 seconds with return value 0
如果输入其它的数字,则执行
请输入一个数字,然后回车
3
输入的不是1
--------------------------------
Process exited after 2.435 seconds with return value 0
请按任意键继续. . .
第三种if (){} else {} if {},则是第一种和第二种的结合,而且可以使用很多if else 方式,但是为了代码阅读方便,不建议使用太多。
具体代码可以结合上面的两种方式,写一写,不再写代码来实现了
switch语句
switch语句基于不同的条件执行不同的代码块,一般用于代替一系列的if-else语句,使代码更清晰,提高代码的易读性。
一个switch语句是一个变量等于多个值时使用,每个值称为一个case,在程序运行时,如果执行switch语句,则语句会对每个case进行检测,但是执行一个case之后,将不会自动终止,还会继续往下执行,直到遇到break才会终止执行。
switch 语句有如下特点:
1.switch中的变量,必须为一个整型或能自动转换为整型的变量,比如:bool,char,short int等等。但是不能使用浮点数(float或double)。
2.一般在switch结束的时候,可以写一个default:,但是这个不是必要的,如果有defalt:则在其它条件都不满足时,会执行default:代码块的内容,如果上面匹配,并且有break则不执行。但是default可以省略不写。
3.一般情况下,建设每个case之后,有一个break;
#include <iostream>
using namespace std;
int main() {int score; //学生成绩cout << "请录入学生成绩:" << endl;cin >> score;switch (score / 10) {case 10://cout << "A+" << endl;break;case 9:cout << "A" << endl;break;case 8:cout << "B+" << endl;break;case 7:cout << "B" << endl;break;case 6:case 5:cout << "C" << endl;break;break;default:cout << "D" << endl;}}
上面的代码中,使用了case break;以及case 6:case 5: brea;则匹配到5或6都会执行同一个代码块,不会因为匹配6之后,就不再匹配5了。如果都不匹配,则会返回D。
请录入学生成绩:
40
D
--------------------------------
Process exited after 3.25 seconds with return value 0
请按任意键继续. . .
如果能匹配上:
请录入学生成绩:
90
A
--------------------------------
Process exited after 2.096 seconds with return value 0
请按任意键继续. . .