C语言中的选择结构

本文详细介绍了C语言中的选择结构,包括if语句和switch语句的代码结构、示例及注意事项。if语句分为单分支和多分支结构,适用于条件判断。switch语句则在多分支情况下更为便捷,可以避免复杂的if...else if...结构。每个case后面需跟整型常量,default子句用于处理未匹配所有case的情况。

选择结构

选择结构是根据条件的真假来决定是否要执行代码块。
在这里插入图片描述
选择结构主要有两种语句,即if语句和switch语句

if语句

代码结构

  1. 单分支结构
if (表达式)
   	语句1;
else
   	语句2;
  1. 多分支结构
if (表达式1)
	语句1;
else if (表达式2)
	语句2;
else
	语句3;

示例代码

#include <stdio.h>
int main()
{
   int age = 0;
   scanf("%d", &age);
   if (age<18)
   {
   	printf("未成年\n");
   }
   else
   {
   	printf("成年\n");
   }
}

运行结果:
输入的数字小于18,则输入未成年;输入的数字大于18,则输出成年

注意事项

  1. 表达式结果为真,则执行语句。C语言里0表示假,非0表示真;
  2. 一个if只能对应一个else,而且对应的是离这个if最近的且未匹配的else;
  3. 可以将语句用{}括起来,使得逻辑清晰,不易出错;
if (表达式)
{
	语句1;
}
else
{
	语句2;
}

典型例题

输入三个整数,并按顺序排列

#include <stdio.h>

int main()//三个整数排序
{
	int a, b, c, t;
	    printf("请输入三个整数\n");
	    scanf("%d%d%d", &a, &b, &c);
	if (a < b)
	{
		t = a; 
		a = b; 
		b = t;
	}
	if (a < c)
	{
		t = a; 
		a = c; 
		c = t;
	}
	if (b < c)
	{
		t = b; 
		b = c; 
		c = t;
	}
	    printf("从大到小排列是:%d%d%d\n", a, b, c);
	    printf("从小到大排列是:%d%d%d\n", c, b, a);

	return 0;
}

输出结果:
在这里插入图片描述

switch语句

switch语句也是一种分支语句。 常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期七
如果写成if…else if …else if 的形式未免也太复杂了,这时候就可以用到switch语句了

代码结构

switch(整型表达式)
{
case 整型常量表达式;
     语句;
}

示例代码

#include <stdio.h>

int main()
{
    int day = 0;
    switch(day)
   {
        case 1printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;    
        case 4:
            printf("星期四\n");
            break;    
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期天\n");    
            break;
   default:printf("请重新输入");
            break;
   }
    return 0;
}

输出结果:输入数字1-7,对应输出星期几,输入别的数字,会提示“请重新输入”

注意事项

  1. case后面必须要跟整型常量,因此switch后面的括号里也要跟整型常量
  2. break可以使程序跳出switch循环,执行switch之后的语句,如果没有break语句,则会从满足条件的地方开始执行,直到switch结构结束。
  3. 如果所有的case标签都不能满足switch()里面的值,这时switch结构体里的所有语句就会被跳过,如果你并不想忽略不匹配所有标签的表达式的值时,你就可以在语句列表中增加一条default子句。default字句可以写在任何一个case标签可以出现的位置,当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。值得注意的时,每个switch语句中只能出现一条default子句。最后,别忘了在default子句后面加上break。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值