【C语言】选择语句(详解)

目录

前言

一、if语句

1.if语句的一般形式

2.级联的if-else语句

3.嵌套的if-else语句

二、switch语句

三、关系、逻辑、条件运算符和表达式

    1.关系运算符与关系表达式

    2.逻辑运算符与逻辑关系式

    3.条件运算符与条件表达式

总结


前言

在C语言中,主要有两种选择语句:if语句和switch语句。

下面是它们各自的基本语法和示例。


一、if语句

if语句:用来实现两个分支的选择结构。

1.if语句的一般形式

//1.没有else子句部分
if(表达式)   语句1

//2.有else子句部分
if(表达式){
  语句1
}else{
  语句2
}

 if 语句基本形式是:if (表达式)语句,“表达式”值可以是任意合法的数值。

2.级联的if-else语句

示例:交电费,分阶段收费

#include
int main() {
	float x = 0.0;
	float y = 0.0;
	scanf_s("%f", &x);

	if (x <= 100)                   y = x * 0.5;
	else if (x > 100 && x <= 300)   y = 100 * 0.5 + (x - 100) * 0.8;
	else if (x > 300 && x <= 1000)  y = 100 * 0.5 + 200 * 0.8 + (x - 300) * 1.2;
	else                            y = 100 * 0.5 + 200 * 0.8 + 700 * 1.2 + (x - 1000) * 2;
//这里需要注意“&&”符号,区别于数学书写方式
printf("%f\n", y);
	return 0;
}

3.嵌套的if-else语句

 示例:找出三位数中的最大值?

#include
int main() {
	int a, b, c;
	int max = 0;
	scanf_s("%d%d%d", &a, &b, &c);
	if (a > b) {
		if (a > c) {
			max = a;
		}
		else {
			max = c;
		}
	}
	else {
		if (b > c) {
			max = b;
		}
		else {
			max = c;
		}
	}
	printf("三位数中最大为%d", max);
	return 0;
}

 二、switch语句

switch语句:实现多分支选择结构。

其基本语句为:

switch(控制表达式)
{
  case 常量: 
      语句;
      break;
  default:
      语句;
      break;
}

示例1:常用switch语句处理菜单命令。

#include
int main() {
	int type;
	scanf_s("%d", &type);
	switch (type) {
	case 1:
		printf("主人,请吩咐妲己"); 
		break;
	case 2:
		printf("没有心,就不会受伤"); 
		break;
	case 3:
		printf("知识就是力量"); 
		break;
	default:
		printf("退出游戏"); 
	    break;
	}
	return 0;
}

switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。

示例2:(假设在示例1的基础上删除第2、3 个break)

【C语言】选择语句(详解)_第1张图片【C语言】选择语句(详解)_第2张图片


三、关系、逻辑、条件运算符和表达式

    1.关系运算符与关系表达式

例如:a>3是一个关系表达式,>是一个关系运算符。

> >= < <= == !=
大于 大于等于 小于 小于等于 等于 不等于
优先级相同(高) 优先级相同(低)

运算符优先级(算术运算符>关系运算符>赋值运算符)

例如:(1)c>a+b   等价于 c>(a+b)       算术运算符优先级高于关系运算符           

           (2)a>b==c 等价于 (a>b)==c    大于运算符优先级高于相等运算符

           (3)a==b小于运算符优先级高于相等运算符

           (4)a=b>c   等价于 a=(b>c)      关系运算符优先级高于赋值运算符

    2.逻辑运算符与逻辑关系式

运算符 含义 举例 说明
&& 逻辑与(and) a&&b 全真则真,一假全假
|| 逻辑或(or) a||b 一真全真,全假才假
逻辑非(not) !a 假则为真,真则为假

运算符优先级(!>算术运算符>关系运算符>&&和||>赋值运算符)

    3.条件运算符与条件表达式

条件运算符 举例 说明
表达式1?表达式2:表达式3 (a>b)?a:b 如果表达式1为真,取值表达式2;为假,取值表达式3

总结

以上对C语言的选择语句进行了基础性讲解,包括基础语法展示、示例展示和相关运算符。

后期需要搭配训练题加深对C语言的理解。

你可能感兴趣的:(C语言,c语言,开发语言)