零基础玩转c语言系列 | 选择语句


前言

C语言中选择语句包括if语句和switch语句,本文对这两种语句进行讲解。


一、什么是分支语句?

在C语言中分支语句又叫选择语句,是当程序执行到某条语句时,根据给定的判断条件,控制程序执行流程的语句。

二、分支语句的分类

1. if…else…语句

1.1 if…else…流程

流程如下:
if分支语句流程图

1.2 if…else…语句语法结构

if…else…语句有三种情况,分别是单分支if;双分支if…else…和多分支if…else if…else…
他们的语法结构如下所示:

//单分支:表达式成立则执行语句
if (表达式)
{  
   语句;
}
//双分支:如果表达式为真,则执行语句1,否则执行语句2
if (表达式)
{
   语句1}
else
{
   语句2}

//多分支:先判断表达式1,成立则执行语句1,不成立判断表达式2,表达式2成立执行语句2,否则执行语句3
if (表达式1{
   语句1}
else if (语句2{
   语句2}  
else
{
   语句3}

可能有人会问,如何判断表达式是否为真,在C语言中,表达式的结果只要是非0就是真。

注意:

  1. 在多分支语句中,else if是可以无限加的,并不是只能有一个else if
  2. else不可以单独出现,if可以单独出现,并且else总是和它同级的那个if 相匹配

1.3 if…else…语句代码示例

#include <stdio.h>
int main()
{
   int age=40;
   if (age>=18)
   {
      printf("成年");
   }
return 0}

此时的表达式为age>40?,很明显我们定义的age是满足条件的,表达式成立,执行语句,输出“成年”

int main()
{
   int age=10;
   if (age>=18)
   {
      printf("成年");
   }
   else
   {  
      printf("未成年");
   }
return 0}

此时表达1不成立,直接执行表达式2,程序输出“未成年”。

int main()
{
   int age=50;
   if (age<18)
   {
      printf("未成年");
   }
   else if (age<40)
   {  
      printf("青年");
   }
   else
   {
      printf("中老年")
   }
return 0}

表达式1(age<18)不成立,接着判断表达式2(age<40)不成立,程序将执行语句3,输出“中老年”。

if…else语句语法简单,但是遇到分支较多的情况,我们则要写成if…else if …else if…这样复杂的形式,我们有没有一种表示多分支的选择语句呢?


2.switch…case…语句

switch语句是c语言中另一种常见的选择语句,常常用于多分支的情况

2.1 switch…case…语句流程

流程如下:
在这里插入图片描述
switch…case语句就是,如果judge 1的结果和下面任意一个judge表达式相等,就执行对应的代码块的内容,而其余代码块中的内容不会被执行。

2.2 switch语句语法结构

switch (judge 1)
{
   case (judge 2);
       code 2;
       break;
   case (judge 3):
       code 3:
       break;
   ......
   case (judge n):
       code n;
       break;
   default:
       code;
       break;
}

程序执行时,首先计算judge 1的值,该值与case后面的常量表达式值比较,若相等就执行对应部分的语句块,执行完后利用break语句跳出switch分支语句。若judge1的值与所有的case后的常量表达式均不匹配,执行default项对应的语句,执行后跳出switch分支语句。

注意:

  1. switch后面的judge表达式决定选择语句从哪个case进入,break决定从哪里跳出
  2. case后面的常量表达式只能是整型、字符型或枚举型常量的一种
  3. 各case语句表达式的值各不相同
  4. case和default出现的先后次序,并不影响执行结果。
  5. 每一个switch语句中只能出现一条default语句

2.3 switch语句代码实例

int day=0
scanf(%d",&day)
switch(day)
{
   case 1:
      printf("星期一");
      break;
   case 2printf("星期二");
      break;
   case 3:
      printf("星期三");
      break;
   case 4:
      printf("星期四");
      break;
   case 5:
      printf("星期五");
      break;
   case 6:
   case 7:
      printf("周末");
      break;
   default:
      printf("输入有误");
      break;
}

上述程序是接受一个键盘输入的整型day,然后根据输入的数字输入对应的星期几。程序在执行的过程中,会把switch语句中的day从上到下跟每一个case后面的常量表达式值比较,相等则输入。如果我们键盘输入的值不是1-7,程序在执行过程中,对比所有的case后,仍然没有找到相等的值。则会执行default后面的语句,提示用户输入有误。


三、总结

本文介绍了C语言中常用的两种选择语句if…else…语句和switch…case…语句,其中if…else语句语法简单,多用户单分支或是双分支,switch…case…语句多用于多分支语句
本篇文章就到这里了,希望能够给你带来帮助

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值