一、为什么要有分支结构
假如你要写一个你要写一个判断奇偶数的程序,你怎么写?
有时程序会在不同的条件下做不同的事情,用之前的写法就不行了,所以要有分支结构。
二、分支结构1:if ... else...
1、单分支
格式:
if(/*一个bool类型的值(真或假*/){
/*
如果为真,干的事情(可以嵌套if)
*/
}
bool类型的值可以是一个变量、一个表达式
表达式可以理解为一个算式(注意:结果非零即为真,零为假)
运算符(可以用于if中的bool值 + - * / %不说了)
运算符 意义
== 左右两边的变量、值是否相等
!= 左右两边的变量、值是否不等
< 左边的变量、值是否小于右边的
> 左边的变量、值是否大于右边的
<= 左边的变量、值是否小于等于右边的
>= 左边的变量、值是否大于等于右边的
&& 左右两边的变量、值均为真返回真,否则返回假
|| 左右两边的变量、值均为假返回假,否则返回真
! 右边的变量、值为真返回假,为假返回真(如果右边的值是一个表达式,请在表达式上加括号)
2、双分支
结构:
if(/*bool类型*/){
//如果bool类型为真,干的事情,可以嵌套
}else{
//如果bool类型为假,干的事情,可以嵌套
}
它类似单分支,不多讲了
3、三目表达式
格式:
/*bool类型,通常是表达式*/ ? /*bool类型为真,返回的东西*/ : /*bool类型为假,返回的东西*/;
例如求两个数最大值:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin >> a >> b;
cout << a > b ? a : b;
return 0;
}
4、多分支
格式:
if(/*bool*/){
//干的事
}else if(/*bool*/){
//干的事
}else if(/*bool*/){
//干的事
}
你可以把他理解成:
if(/*bool*/){
}else{
if(/*bool*/){
}else{
//嵌套下去
}
}
5、完成奇偶数判断
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
if(n % 2){
cout << "奇数";
}else{
cout << "偶数";
}
return 0;
}
三、分支结构2:switch ... case...
结构
switch (/*一个值、表达式、变量*/)
{
case /*switch括号里的内容的第一种情况*/:
//执行的内容
break;
case /*switch括号里的内容的第二种情况*/:
//执行的内容
break;
/* ... */
default:
//如果上面的case都不执行,干的事情
break;
}
例子
星期一为第一天,输入n,输出第n天是星期几,n>7输出Error:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
switch(n){
case 1:
cout << "Monday";
break;
case 2:
cout << "Tuesday";
break;
case 3:
cout << "Wednesday";
break;
case 4:
cout << "Thursday";
break;
case 5:
cout << "Friday";
break;
case 6:
cout << "Saturday";
break;
case 7:
cout << "Sunday";
break;
default:
cout << "Error";
break;
}
return 0;
}
四、本次小结
1、会用if…else…
2、会用switch…case… default…
本次代码:https://download.csdn.net/download/2401_86727236/89638460?spm=1001.2014.3001.5503