C语言-选择语句

目录

前言

一、if…else 语句

1. if 语句

1.1 流程图

1.2 语法结构

1.3 代码实例

1.4 代码结果 

2. if…else 语句

2.1 流程图

2.2 语法结构

2.3 代码实例

2.4 代码结果 

3. if…else if…else 语句

3.1 流程图

3.2 语法结构

3.3 代码实例

3.4 代码结果

4. if语句的嵌套

4.1 语法结构

4.2. 嵌套逻辑

 二. switch...case 语句

1. 流程图

 2.语法结构

 3.代码实例

4. 代码结果 

三.条件表达式 语句

1.基本用法

1.1 语法结构

1.2 代码实例

1.3 代码结果 

 2.条件表达式 语句的嵌套

2.1 代码实例

 2.2 代码结果


前言

   选择语句是C语言中的重要组成部分,包括if...else语句,switch...case语句,三目运算符语句

一、if…else 语句

1. if 语句

1.1 流程图

1.2 语法结构
if (表达式)
{
    语句块1;
}

当只有 if 的时候,表达式为真就执行语句块1,否则就跳过语句块的内容。 

1.3 代码实例
#include <stdio.h>

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
		printf("成年了\n");
	return 0;
}
1.4 代码结果 
假如输入的值为15 -> 没有输出结果
假如输入的值为21 -> 成年了

2. if…else 语句

2.1 流程图

2.2 语法结构
if (表达式)
{
    语句块1;
}
else
{
    语句块2;
}

该语句的常见形式,当表达式为真(即表达式的结果是非0)的时候执行语句块1的内容,当表达式为假(即表达式的结果是0)的时候执行语句块2的内容。

2.3 代码实例
#include <stdio.h>

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("未成年\n");
	else
		printf("成年\n");
}
2.4 代码结果 
假如输入的值为15 -> 未成年
假如输入的值为21 -> 成年

3. if…else if…else 语句

3.1 流程图

3.2 语法结构
if (表达式1)
    语句块1;
else if (表达式2)
	语句块2;
else if (表达式3)
    语句块3;
...
else if (表达式n)
    语句块n;
else
	语句块n+1;

当表达式1为真的时候就只执行语句块1的内容,之后跳出if语句,其余语句块都不执行。当表达式1为假并且表达式2为真的时候就只执行语句块2的内容,之后跳出if语句,其余语句块不执行。当表达式1和表达式2都为假的时候执行语句块3的内容,之后跳出if语句,其余语句块不执行。以此类推

3.3 代码实例
#include <stdio.h>

int main()
{
    int scores = 0;
    
    printf("请输入您的成绩: ");
    scanf("%d", &scores);

    if (scores < 0) {
        printf("没有成绩\n");  
    } else if (scores < 60) {
       printf("成绩不及格\n");
    } else if (scores < 80) {
        printf("成绩中等\n");
    } else if (scores <= 100) {
        printf("成绩好\n");
    } else {
        printf("输入错误\n");
    }

    return 0;
}
3.4 代码结果
假如输入的值: 56
结果是:成绩不及格

4. if语句的嵌套

当 if 语句中的执行语句又是 if 语句时,则构成了 if 语句嵌套的情形。

4.1 语法结构
if(表达式1)
	if(表达式2)
	语句块1;
	else
	语句块2;

上述中的else,是跟if(表达式1)匹配呢,还是跟if(表达式2)匹配呢?

4.2. 嵌套逻辑
#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    scanf ("%d %d",&a,&b);
    if (a==6)
        if(b==7)
            printf("A");
    else
        printf("B");

    
    return 0;
}
假如输入的值: 7 6
真实结果是:无输入

C语言规定,else 总是与它前面最近的 if 配对。以上代码给人造成一种错觉,即当第一个if else 对齐时,else同第一个if自行配对。以至于得到的结果为“B”。其实不然,当无括号时,else将与最近的一个if配对。

要想上述的结果输入B,注意加上 "{ }",避免代码看似正确,实则逻辑混乱,而得不到想要的结果。

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    scanf ("%d %d",&a,&b);
    if(a==6){
        if(b==7)
            printf("A");
    }
    else{
        printf("B");
    }
    return 0;
}
假如输入的值: 7 6
真实结果是:B

 二. switch...case 语句

1. 流程图

 

 2.语法结构

switch(整型常量/整型变量/整型表达式){
    case var1:
        break;
    case var2:
        break;
    case var2:
        break;
    default:
        break;
}

执行流程:表达式1的结果一般是整形常量或字符常量。当表达式的结果和 case 后面的表达式结果一致时,就会执行对应的语句块的内容,否则,就会进入default中,执行语句块n 。然后在break的时候跳出大括号的内容。
注:

  • 1、switch语句中的常量表达式必须是整型或者字符型,不能为浮点类型
  • 2、case后的必须为常量表达式,不能为关系表达式,如x>0,x==1这样的表达式是不合法的。
  • 3、switch语句中的default可以省略,省略后,当表达式的值与任何一个常量表达式都不行等时,就什么也不执行。

 3.代码实例

#include <stdio.h>
int main()
{
	int day = 0;
	printf("请输入日期");
	scanf("%d", &day);
	switch (day) {
	case 1:
		printf("星期一\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("输入错误,请重新输入\n");
		break;

	return 0;
}

4. 代码结果 

假如输入:4
结果:星期四

switch...case语句常常用于多分支的情况,如果上述情况用if语句,会非常的繁琐。

三.条件表达式 语句

如果表达式1为真,则将表达式2的结果作为最终运算结果,否则就将表达式3的结果作为最终运算结果。

1.基本用法

1.1 语法结构

表达式1 ? 表达式2 : 表达式3 

1.2 代码实例

#include <stdio.h>

int main()
{
    int a = 0, b = 0, max = 0;

    printf("请输入两个数: ");
    scanf("%d %d", &a, &b);

    max = a > b ? a : b;

    printf("两数中较大的数是: %d", max);
    
    return 0;
}

1.3 代码结果 

假如输入:4 5
结果:5

 2.条件表达式 语句的嵌套

2.1 代码实例

#include <stdio.h>
 
int main()
{
    int a = 1 ,b = 2 , c = 3 , d = 4 ;
    int min = 0;
    min = ((a < b ? a : b) < (c < d ? c : d)) ? (a < b ? a : b) : (c < d ? c : d);
    printf("最小值:%d\n",min);

    return 0;
}

 2.2 代码结果

最小值:1

C语言选择语句的使用包括if语句、switch语句和三目运算符,以下是一些使用指导: 1. if语句: if语句用于根据条件执行不同的代码块,其基本语法为: if (condition) { // code block to be executed if condition is true } 当条件为真时,代码块将被执行。如果条件为假,则代码块将被跳过。 2. switch语句: switch语句用于根据一个表达式的值执行不同的代码块,其基本语法为: switch (expression) { case value1: // code block to be executed if expression == value1 break; case value2: // code block to be executed if expression == value2 break; default: // code block to be executed if expression doesn't match any of the cases break; } 在switch语句中,当表达式的值匹配某个case子句的值时,对应的代码块将被执行。如果表达式的值不匹配任何case子句的值,则执行default代码块。 3. 三目运算符: 三目运算符(也称为“条件运算符”)用于根据条件选择执行不同的代码块,其基本语法为: condition ? expression1 : expression2; 当条件为真时,表达式1将被执行;当条件为假时,表达式2将被执行。 当使用选择语句时,需要注意以下几点: 1. 选择语句中的条件应该尽可能简单明了,避免过于复杂的表达式或条件判断。 2. 在使用if语句时,应该注意条件的顺序,将最可能为真的条件放在最前面,避免不必要的代码执行。 3. 在使用switch语句时,应该注意case子句的顺序,将最可能匹配的值放在前面,避免不必要的比较。 4. 在使用三目运算符时,应该注意代码的可读性,避免过度使用嵌套运算符,使代码难以理解。 总之,选择语句C语言中非常重要的语法结构之一,合理使用可以使代码更加清晰、简洁和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值