c++语言学习(7)--分支结构 (2)

1、复合语句(程序块)

例子1:

输入两个整数,计算并显示较大的值和较小的值。

#include"stdio.h"

int main()
{
    int n1,n2,max,min;
    
    puts("请输入两个整数:");
    printf("整数1:"); scanf("%d",&n1);
    printf("整数2:"); scanf("%d",&n2);

    if(n1>n2)
    {
        max=n1;
        min=n2;
    }
    else
    {
        max=n2;
        min=n1;
    }

    printf("较大的数是 %d\n",max);
    printf("较小的数是%d\n",min);

    return 0;
}

{  }中间的语句是在  n1>n2的时候同时一起执行的

这不再像之前单一的语句

如果我们的语句没有加 {  },那么会有不一样的意思,把其中的一部分拿出来更改如下:

if (n1>n2)
    max=n1;
    min=n2;

这样,无论n1>n2是否满足, 成立。  min都是为n2

可以做一个测试来验证。

这种用 { }括起来的 多条语句 就叫做复合语句,也称为语句块。

加和不加 {  },在上面的情况下是由完全不同的意思。

如果回到上一节的例子中去,if语句的执行的语句部分只有单条语句的情况下,也可以改成如下的情况,意思是不变的:

//省略其他部分程序

if(n1>n2)
{
    max=n1;
}else
{
    max=n2;
}

这个就是单条的语句的程序 ,从这里我们得到什么启发呢?

单条可以加括号,多条也可以加括号,实际上,多条语句即复合语句就可以理解为一条语句——他是在那个条件之下做的一系列的事情,用多句话来表示。

我们在生活中也 可以由很多类似的例子来印证这种理解。

 

2、逻辑运算符

例子:输入一个整数月份,判断他是在哪个季节。

我们都知道  春季是在(3,4,5)月

     夏季是在(6,7,8)月

      秋季是在(9,10,11)月

      冬季是在(12,1,2)月

      其他月份的值不存在。

根据以上,程序代码如下:

#include"stdio.h"

int main()
{
    int month;
    
    printf("请输入月份:");
    scanf("%d",&month);

    if(month >=3 && month<=5)
        printf("%d 月是春季\n",month);
    else if(month >=6 && month<=8)
            printf("%d 月是夏季\n",month);
         else if(month >=9 && month<=11)
                 printf("%d 月是秋季\n",month);
              else if(month==1 || month==2 || month=12)
                      printf("%d 月是冬季\n",month);
                   else
                      printf("%d 月不存在\n",month);

    return 0;
}

 

这里所使用的是 &&  和 ||  成为逻辑运算符

&& 成为“与 ”  ,也就是并且的意思,这个相当于语文理解中的 “只有   ………………才…………”。这就是必须要的条件

|| 成为“或”,就是或者的意思,所以这个相当于  语文中的“只要 ………………就…………”。这个就是非必要条件。

转换成程序当中的专业表达就是如下:

(当表达式成立的时候,返回的是1  而不成立的时候返回的是0)

a && b

利用上述的分析,表达如下:

只有 a 和 b 同时为 1的时侯,才为 1(确切的说应该是非0,简化期间如此表达)

也可以 说:只有 a 为1  并且  b为1 ;  才能使得上面的表达式为1;

a b a && b
1 1 1
1 0 0
0 1 0
0 0 0

 

 

 

 

 

 

a ||  b转换成表达如下:

只要 a 为1 或者 b 为1, 就可以得到表达式子的值为1

a b a || b
1 1 1
1 0 1
0 1 1
0 0 0

 

 

 

 

 

 

由此,可以看出,

a  &&  b ,只要由任何一个元素的 值为0,那么其他都为 0

a || b   :  只要任何一个元素的值为1 时,  结果就时 1;

 

 

-------------------------------------------------------------------------------------------

练习1:

写一段程序,输入3个整数,如果3个整数都相等,那么就显示 “3个整数相等”。如果由任意两个整数相等,那么就显示“2个整数相等”,如果各不相同,就显示“他们各不相同”

 

练习2:

输入两个整数,如果他们的差值小于等于10,就显示“两者差值小于等于10”; 否则就显示“两者差值大于等于11”;

posted @ 2020-12-25 11:27  xujieqiang  阅读(198)  评论(0编辑  收藏  举报