【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 }
      点+看答案
posted @ 2020-09-03 23:05  odin1994  阅读(555)  评论(0)    收藏  举报