【C语言】分支结构

目录

1.关系运算符

2.关系表达式

3.逻辑运算符

4.短路求值

5.if语句

if语句(1)

if语句(2)

 if语句(3)

 6.switch语句


1.关系运算符

使用关系运算符来比较两个数的大小关系:

  • < 、<=、>、>=、(优先级相同,较高);
  • ==、!=、(优先级相同,较低)。
    关系运算符得到的值是逻辑值,只有真 或 假

2.关系表达式

用关系运算符将两边的变量、数据或者表达式连接起来,称之为关系表达式: 

#include<stdio.h>

int main()
{
        int a = 5, b = 3;

        printf("%d\n",1 < 2);
        printf("%d\n",a < b);
        printf("%d\n",a <= b + 1);
        printf("%d\n",'a' + 'b' <= 'c');//ASCII码   a、b、c分别对应数字97、98、99
        printf("%d\n",(a=3)<(b=5));
       
        return 0;
}

3.逻辑运算符

在C语言中,需要同时对两个或两个以上的关系表达式进行判断,此时需要用到逻辑运算符。

C语言总共提供了3种逻辑运算符:

逻辑运算符
运算符含义优先级举例说明
逻辑非!a

如果a为真,!a为假;

如果a为假,!a为真;

&&逻辑与a&&b

只有a和b同时为真,结果才为真;

只要a和b其中一个为假,结果为假;

||逻辑或a||b

只要a和b其中一个为真,结果为真;

只有a和b同时为假,结果才为假;


4.短路求值

  • 又称为最小化求值,是一种逻辑运算符的求值策略。只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。
  • C语言对于逻辑与和逻辑或采用短路求值的方式。

#include<stdio.h>

int main()
{
        int a = 3, b = 3;

        (a = 0)&&(b = 5);
        printf("a = %d,b = %d\n", a , b);

       (a = 1)||(b = 5);
        printf("a = %d,b = %d\n", a , b);
        return 0;
}

5.if语句

  • if语句(1)

  • if语句(1)

......//其它语句
if(表达式)
{

     ......//逻辑值为真所执行的语句、程序块
}
     ......//其它语句

如果表达式为真,则执行大括号里的内容

#include<stdio.h>

int main()
{
         int i ;
         printf("您老贵庚:");
         scanf("%d", &i);

         if (i >= 18)
         {
                 printf("进门左拐\n");
                 printf("天天开心\n");
         }
         return 0;
}

  • if语句(2)

  • if语句(2)

 ......//其它语句
if(表达式)
{

     ......//逻辑值为真所执行的语句、程序块
}

else

{
     ......//逻辑值为假所执行的语句、程序块
}
     ......//其它语句

如果表达式为真,则执行第一个大括号里的内容;否则执行第二个大括号的内容

#include<stdio.h>

int main()
{
         int i ;
         printf("您老贵庚:");
         scanf("%d", &i);

         if (i >= 18)
         {
                 printf("进门左拐\n");
                 printf("天天开心\n");
         }
         else
         {
                 printf("请离开\n");
         }
         return 0;
}
  •  if语句(3)

  •  if语句(3)

 ......//其它语句
if(表达式1)
{

     ......//逻辑值为真所执行的语句、程序块
}

else if(表达式2)

{
     ......
}

else if(表达式3)

{
     ......
}

          .

          .

          .

else if(表达式n)

{
     ......
}

else

{
     ......
}
     ......//其它语句

 做一个按分评级的程序:

——90分以上:A

——80~90分:B

——70~80分:C

——60~70分:D

——低于60分:E

#include<stdio.h>

int main()
{
         int i ;
         printf("请输入分数:");
         scanf("%d", &i);

         if (i >= 90)
         {
                 printf("A\n");
                
         }
         else if(i >= 80 && i < 90)
         {
                 printf("B\n");
         }
         else if(i >= 70 && i < 80)
         {
                 printf("C\n");
         }
         else if(i >= 60 && i < 70)
         {
                 printf("D\n");
         }
         else
         {
                 printf("E\n");
         }
         return 0;
}

 6.switch语句

......//其它语句
switch(表达式)
{

     case 常量表达式1:语句或程序块1; break;

     case 常量表达式2:语句或程序块2; break;

     ......

     case 常量表达式n:语句或程序块n; break;

     default: 语句或程序块n+1; break;
}
     ......//其它语句

#include <stdio.h>
int main()
{
      char ch;
      printf ("请输入成绩:")
      scanf("%c, &ch");
      
      switch(ch)
      {
              case 'A' : printf ("你的成绩在90分以上!\n"); break;
              case 'B' : printf ("你的成绩在80~90之间!\n"); break;
              case 'C' : printf ("你的成绩在70~80之间!\n"); break;
              case 'D' : printf ("你的成绩在60~70之间!\n"); break;
              case 'E' : printf ("你的成绩在60分以下!\n"); break;
              default: printf("错误输入,请重新输入!"); break;
      }

      return 0;
}

(时隔很久的三更~)

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值