【C++初级技能书】3.条件语句
各位同学大家好呀,本章我们学习C++中条件语句的写法。
1.条件语句示例
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 //例1:如果1+1大于2,就输出nice,否则输出good 6 if (1 + 1 > 2) 7 { 8 cout<<"nice"<<endl; 9 } 10 else 11 { 12 cout<<"good"<<endl; 13 } 14 15 getchar(); 16 return 1; 17 }
上面就是最基本的一个示例,执行了一个程序,如果1+1大于2,就输出 nice ,否则就输出 good。那么显而易见这个例子最终会输出good,因为1+1是等于2的,同学们可以尝试运行一下来看看结果对不对。
2.基本条件语句结构
最基本的条件语句其实只需要一个if(){},如下:
1 if(条件1) 2 { 3 //如果条件1成立,下面为要做的逻辑 4 }
if后跟着中括号,中括号里是判断条件,判断条件不可省略,当条件1成立,将会执行花括号{}里的语句,如果不满足条件1,则跳过紧跟的这个花括号里的语句。
3.互斥情况下条件语句结构
当你要根据某个条件1判断,如果成立就做A,如果不成立就做B,那么你可以直接在属于if的花括号{}后跟一个else{},如下:
1 if(条件1) 2 { 3 //如果条件1成立,下面为要做的逻辑 4 } 5 else 6 { 7 //如果条件1不成立,下面为要做的逻辑 8 }
4.连续判断
如果你要连续判断条件1,条件2,条件3等等,并且他们之间是递进关系,可以在每个else后继续跟if()语句来判断,如下:
1 if(条件1) 2 { 3 //如果条件1成立,下面为要做的逻辑 4 } 5 else if(条件2) 6 { 7 //继续判断条件2,这里为不满足条件1但是满足条件2要做的事 8 } 9 else if(条件3) 10 { 11 //继续判断条件3,这里为既不满足条件1,也不满足条件2,但是满足条件3时要做的事 12 } 13 else 14 { 15 //这里为上面三个条件都不满足的时候要做的事 16 }
注意!看到这里你已经掌握了最基本的判断语句写法,后边的内容为扩展内容,如果你不会,或者看不懂,并不妨碍你学会判断语句,但是你可以看一下,如果看懂了,说明你很厉害,不想看的同学,请直接跳至思考一下。
5.特殊判断 switch
如果你像4.里那样进行了一连串的判断,你也可以用switch,如下:
1 switch (变量1) 2 { 3 case 条件1: 4 //当条件1成立要做的事 5 break; 6 case 条件2: 7 //当条件2成立要做的事 8 break; 9 case 条件3: 10 //当条件3成立要做的事 11 break; 12 case 条件4: 13 //当条件4成立要做的事 14 break; 15 default: 16 //当上面的条件都不成立时要做的事 17 //如果没有要做的事,这里的default和配对的break可以省略不写 18 break; 19 }
switch的判断方法是使用括号里的变量1去对比每一个case的条件,如果相同,那么就执行紧接着的语句,注意break;一般是不能省略的,它代表执行完这个case之后,就跳出整个switch语句。当然我说的是一般是不能省略的,后面可以尝试一下,如果省略,会发生什么呢?
当你把连续判断的if else语句组合改写为switch语句时(也就是把上面的4.改写为5.时),它们的执行结果是相同的,所以不用纠结使用哪个结构来完成你的逻辑。
6.特殊判断 三目运算符 ?:
啊,恭喜你,当你看到这里,你就看到了真的扩展内容。
那么三目运算符,其实就等于一个if+else,如下:
1 if(条件1) 2 { 3 //如果条件1成立,执行这里的语句 4 } 5 else 6 { 7 //如果条件1不成立,执行这里的语句 8 }
上面的判断语句等价于下面这个
1 条件1 ? 条件1成立要做的事 : 条件1不成立要做的事 ;
如果看不懂,没关系,再看看下面这个例子,我们将判断,如果1+1大于3,输出A,否则,输出B。
1 if(1+1>3) 2 { 3 cout<<"A"<<endl; 4 } 5 else 6 { 7 cout<<"B"<<endl; 8 } 9 //上面的语句等价于 10 1+1>3?cout<<"A"<<endl:cout<<"B"<<endl;
思考一下(答案不唯一)
- 尝试完成判断:1234*567和1234567的大小关系
-
点+看答案1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int a = 1234 * 567; 6 int b = 1234567; 7 if (a > b) 8 { 9 cout<<"1234*567>"<<b<<endl; 10 } 11 else 12 { 13 cout<<b<<">1234*567"<<endl; 14 } 15 16 getchar(); 17 return 1; 18 }
-


浙公网安备 33010602011771号