表达式与if,Switch语句

目录

一.关系,逻辑表达式

二.if 语句

 三.switch 语句


一.关系,逻辑表达式

1.关系表达式

(1)用关系运算符将两个表达式连接起来的式子。
(2)关系表达式的值是一个逻辑值,即“真”或“假”,
(3)在C的关系运算中,以“1”代表“真”,以“0”代表“假”。

2.逻辑运算符

优先级:!>&&>||

运算符含义举例说明
&&逻辑与a&&b如果a和b都为真,则结果为真,否则结果为假
||逻辑或a||b如果a和b中有一个或一个以上为真,则结果为真,若两个都为假,则结果为假
逻辑非!a如果a为真,则!a为假,如果a为假,则!a为真

3.优先级

!>算数运算符>关系运算符>&&和||>赋值运算符

4.逻辑表达式

(1) 用逻辑运算符将关系表达式或逻辑量连接起来的式子。

(2)逻辑表达式的值是一个逻辑值,即“真”或“假”,以“1”代表“真”,以“0”代表“假”。

(3)在对逻辑表达式的求解中,并不是所有的逻辑运算符都被执行。
          a&&b&&c,只有a为真,才继续右面的运算。
          allb|lc,只有a为假,才继续右面的运算。

二.if 语句

if语句的三种形式
1.   if语句——单分支结构

(1)语法格式

                  if(表达式)

                  {

                            语句块

                   }

                  }df460949fab4419798cbf44116fcc883.png

如果表达式的值为真,则执行语句块。

举例 判断一个数为正数

#include <stdio.h>
int main()
{
  int a;
  scanf("%d",&a);
  if(a>0)
  {
  printf("%d是正数.\n",a);
  }
}

2.   if...else 语句——双分支结构

(1)语法格式

   if(表达式)

   {

            语句块1

    }

    else

     {

            语句块2

      }

ddf0f2c7370245f997f66e0d9331f782.png

表达式为真则执行语句块1,否则执行语句块2

举例运算  计算两个数的商

#include <stdio.h>
int main()
{
double x,y;
double result;
printf("请输入被除数:");
scanf("%lf",&x);
printf("请输入除数:");
scanf("%lf",&y);
result=x/y;
if(y!=0)
{
   result=x/y;
   printf("两个数的商:%.2f\n",result);
}
else
{
  printf("除数为零!\n");
}
printf("两个数的商:%2f\n",result);
}


3.   if...else if...else——语句多分支结构

(1)语法格式

if(表达式)  {语句块1}

else if(表达式2)  {语句块2}

else if(表达式3) {语句块3}

······

else if(表达式n){语句块n}

else{语句块m}

904b74573b734819ac0cc4ccc30a1c90.png

举例运算 字符类型判断

#include <stdio.h>
int main()
{
    char c;
    printf("Input a character:");
    scanf("%c",&c);
    if(c>='a' && c<='z'|| c>='A'&& c<='z')
      printf(" It is an English character.\n");
    else if(c>='0'&& c<='9')
      printf("It is a digit character.\n");
    else
      printf("It is other character.\n");
    return 0;
}

 三.switch 语句

1.switch语句是多分支条件判断语句,它能够根据表达式的值从多个分支中选择一个执行的分支。

2.switch语句的一般形式

switch(表达式)

{
case 常量表达式1:语句块1;break;
case 常量表达式2:语句块2;break;
case 常量表达式n:语句块n; break;
default:语句块n+1
}

cb2e692b2bf34a0487d48ae75a4ef021.png

 3.执行流程:
(1)首先计算表达式的值,
(2)与各个case后的常量表达式的值比较,当表达式的值与某个常量表达式的值相等时,即执行            其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
(3)如表达式的值与所有case后的常量表达式均不相同,则执行default后的语句。

4.举例运算

#include <stdio.h>
int main()
{ int a;
printf("Input integer number:");
scanf("%d",&a);
switch(a)
{
case 1: printf("Monday\n");break;
case 2: printf("Tuesday\n");break;
case 3: printf("Wednesday\n");break;
case 4: printf("Thursday\n");break;
case 5: printf("Friday\n");break;
case 6: printf("Saturday\n");break;
case 7: printf("Sunday\n");break;
default:printf("error\n");
}
return 0;
}

5.在使用switch语句时应注意以下几点:
①表达式的值为整数、字符、枚举类型。
②常量表达式的值必须互不相同,否则会出现分支矛盾的现象。
③case后面的常量表达式只起标号作用,而不起条件判断作用,即“只是开始执行处的入口标
号”。一般情况下需用break语句跳出switch语句。
④语句块可以是一条语句,或复合语句,可以不用花括号{}。
⑤各个case 和 default 出现的先后次序,并不影响执行结果,习惯上将default子句放在switch的末尾。
⑥多个case标号可共用一组执行语句。
switch(表达式)
{case 常量表达式1:
case 常量表达式2:
case 常量表达式3:语句1;break;
case 常量表达式4:语句2;break;

……

PS:图是自己画的就是磕碜了点

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值