03.条件分支
2017-04-20 本文已影响0人
Jameslong
条件分支
无论是什么编程语言,都会有条件判断,选择分支,本讲,将介绍条件判断和选择分支的使用。
1、if() else()型和if()
#include<iostream>
using namespace std;
const float pi = 3.14;
int main(){
int age = 18;
if (age < 18){
cout << "对不起,您未成年!" << endl;
}
else{
cout << "您已经是成年人!" << endl;
}
return 0;
}
Paste_Image.png
当age = 18时,不满足if()条件,选择else分支
Paste_Image.png
当age=18时,满足条件,选择if()分支
if()语句是if else的特例,这里省略了else,记住其实是有个else分支的,只是省略没写,因为这个分支什么都没做。
2、if() else if() else if() ... else型
#include<iostream>
using namespace std;
const float pi = 3.14;
int main(){
int goal = 60;
cout << "goal = " << goal << endl;
if (goal <60 ){
cout << "对不起,不及格!" << endl;
}
else if (goal<80){
cout << "你获得良!" << endl;
}
else{
cout << "很棒,你得了优秀!" << endl;
}
return 0;
}
Paste_Image.png
说明:if else类型的选择语句是可以嵌套的,但是嵌套的时候要注意else的匹配问题,为了便于阅读,尽量每个关键字后面都带上括号{},没有括号时,else与最近符if 匹配!!!
举例说明:
#include<iostream>
using namespace std;
const float pi = 3.14;
int main(){
int day;
cout << "please input a number between 1 and 7: ";
cin >> day;
if (day < 6)
if (day == 1)
cout << "今天周一,是工作日" << endl;
else
cout << "今天是工作日,但不是周一,else与最近的if匹配" << endl;
return 0;
}
Paste_Image.png
3、switch()开关语句
当有多个类似的选择分支时,通常使用switch语句进行选择,使得代码清晰明了,便于阅读和理解。
例如输入数字1-7,判断对应的星期。
#include<iostream>
using namespace std;
const float pi = 3.14;
int main(){
int day;
cout << "please input a number between 1 and 7: ";
cin >> day;
switch (day){
case 1:cout << "今天是星期一!" << endl; break;
case 2:cout << "今天是星期二!" << endl; break;
case 3:cout << "今天是星期三!" << endl; break;
case 4:cout << "今天是星期四!" << endl; break;
case 5:cout << "今天是星期五!" << endl; break;
case 6:cout << "今天是星期六!" << endl; break;
default:cout << "今天是星期日!" << endl;
}
return 0;
}
Paste_Image.png
在switch语句中switch()括号中的值分别与case中的值比较,从相同的一项开始执行,break;跳出当前选择,不然会一直执行,看下面代码,比较不同。
#include<iostream>
using namespace std;
const float pi = 3.14;
int main(){
int day;
cout << "please input a number between 1 and 7: ";
cin >> day;
switch (day){
case 1:cout << "今天是星期一!" << endl; break;
case 2:cout << "今天是星期二!" << endl; break;
case 3:cout << "今天是星期三!" << endl;
case 4:cout << "今天是星期四!" << endl;
case 5:cout << "今天是星期五!" << endl;
case 6:cout << "今天是星期六!" << endl;
default:cout << "今天是星期日!" << endl;
}
return 0;
}
Paste_Image.png
因为case 3:之后的分支都没有写break;语句所以一直往后执行。实际操作中要注意!!!
在switch语句中default常常用来处理错误的情况,也就是未知的情况,但有时情况确定时可以作为其中一个情况分支使用。还有就是default要放在最后,以为switch中的值是从上往下依次比较的,并且default 的执行块中不用再写break;语句。