if 语句与switch语句

目录

一、if语句

1.if语句-单分支结构

2.if…else语句-双分支结构

3.if…else if…else语句-多分支结构

4、if语句的嵌套

二、switch语句

三、if语句与switch语句的区别

总结 


一、if语句

if语句是指编程语言(包括c语言、C#、VB、java、汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。

if语句的三种形式

-if语句                    单分支结构

-if…else                 双分支结构

-if…else if…else   多分支结构

1.if语句-单分支结构

语法格式:

if(表达式)

语句块

}

例如:判断一个数为正数

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

2.if…else语句-双分支结构

语法格式:

if(表达式)

语句块1

else

语句块2

例如:判断一个数是奇数还是偶数

#include<stdio.h>
int main()
{
    int a;
    pfintf(“请输入一个整数:”);
    scanf("%d",&a);
    if(a%2==0)
    printf(“%d为偶数!”,a);
    else
    printf(“%d为奇数!”)
    return 0;
}

3.if…else if…else语句-多分支结构

语法格式:

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

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

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

……

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

else{语句块m}

#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 digital character.\n");
    else
      printf("It is other character.\n");
    return 0
}

多分支语句中的else if中间是有空格的。

单双分支语句的集中书写格式同样适用于多分支语句。

多分支语句中的判断条件一旦被满足,便终止往下判断。

4、if语句的嵌套

if(表达式1)

 {

     if(表达式2)语句1

     [eise    语句2

}

if(表达式1)

{

    if(表达式2)语句1

    [else      语句2]

}

else    语句3

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

else

{   

    if(表达式2)语句2

    [else      语句3】

}

if(表达式1)

{

    if(表达式2)语句1

    [else          语句2]

 }

else

{    if(表达式3)语句3

     [else          语句4]

}

  1. if语句的每个分支,又可以看做一个顺序执行程序,其中可以在添加分支。
  2. else语句会与距离它最近的if语句配对,除非有{}。
  3. 在没有熟悉掌握嵌套语句使用前,建议都添加{}。

二、switch语句

switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。

switch语句,即“切换”语句;case即“情况”。
switch语句的语法如下(switch,case,break和default是关键字):


switch ( 变量表达式 )
{
    case 常量1 :语句;break;
    case 常量2 :语句;break;
    case 常量3 :语句;break;
    ...
    case 常量n:语句;break;
    
    default :语句;break;
}

当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果变量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句

#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
}

注意:

  1. 表达式的值为整数、字符、枚举类型。
  2. 常量表达式的值必须互不相同,否则会出现分支矛盾。
  3. case后面的常量表达式只起标号作用。一般情况下需用break语句跳出switch语句。
  4. 语句块可以是一条语句,或复合语句,可以不用{}。
  5. case和default出现的先后次序并不影响执行结果。
  6. 多个case标号可共用一组执行语句。

三、if语句与switch语句的区别

1、if语句应用广泛并且实用。

2、switch语句效率更高,更精简。

3、用switch语句能做到的,用if语句都能做,反过来则不可以。


总结

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值