选择结构if/switch

本文介绍了程序的三种基本结构:顺序结构、选择结构(包括if语句及其嵌套)和循环结构。通过示例代码详细讲解了如何在C语言中使用这些结构进行条件判断和分支选择,特别是强调了switch语句在多分支选择中的应用。
摘要由CSDN通过智能技术生成

之前说过,按照操作的执行顺序,程序可分为3中基本结构,即顺序结构选择结构循环结构。选择结构是对给定的条件进行判断,再根据判断的结果决定执行哪一个分支

1顺序结构

顺序结构是结构化程序设计的3种基本结构中最间单的。它可以独立存在,也可以出现在选择结构或者循环结构中。总之,任何程序都存在顺序结构。在顺序结构中,函数、一段程序或者语句都是按照出现的先后顺序执行的。
例如:求一元二次根的算法
在这里插入图片描述
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
	float a, b, c, p, x1, x2;
	scanf("%f %f %f", &a, &b, &c);
	p = sqrt(b * b - 4 * a * c);
	x1 = (-b + p) / (2 * a);
	x2 = (-b - p) / (2 * a);
	printf("x1=%6f,x2=%6f\n", x1, x2);
	return 0;
}

2if语句

2.1if语句的基本形式

if语句的功能是根据一个条件判断的结果选择执行某一分支。

if (条件)
{
	语句1}
else
{
	语句2}

if语句的流程图:
在这里插入图片描述
示例代码:

int main()
{
	int a,b, max;
	scanf("%d %d", &a, &b);
	if (a > b)
	{
		max = a;
	}
	else
	{
		max = b;
	}
	printf("%d", max);
	return 0;
}

2.2if语句的嵌套

前两种形式的f语句一般用于两个分支的情况。当有多个分支选择时,可采用if -else if-else语句。换句话说,f语句可以相互嵌套,即当f语句中的语句1或者语句2是一个含有f语句的复合语句时,便形成了if语句的嵌套。
在这里插入图片描述

int main()
{
	int x, y;
	scanf("%d", &x);
	if (x <= 0)
	{
		if (x < 0)
		{
			y = -1;
		}
		else
		{
			y = 0;
		}
	}
	else
	{
		y = 1;
	}
	printf("%d %d", x, y);
	return 0;
}

3switch语句

当选择的分支较多时,虽然可以用f语句的嵌套实现,但是不够直观;尤其当层次较多时,条件书写麻烦,容易出错。switch语句是C语言中选择结构的另一个常用的实现方式,非常适用于多支路选择的实现。
执行顺序:
(1)先计算并判断表达式的值。
(2)将结果与case分支中常量表达式的值进行比较。如果相等则执行其后的语句。
(3)如果没有相等的值,则执行default后面的语句。
(4)若缺省default语句。则跳出switch结构,执行switch结构的后读语句。
示例代码:

int main()
{
	int score;
	printf("请输入学生分数");
	scanf("%d", &score);
	switch (score / 10)
	{
	case 10:
	case 9:printf("成绩优秀\n"); break;
	case 8:printf("成绩良好\n"); break;
	case 7:printf("成绩中等\n"); break;
	case 6:printf("成绩及格\n"); break;
	case 5:
	case 4:
	case 3:
	case 2:
	case 1:
	case 0:printf("成绩不及格\n"); break;
	default:printf("成绩错误\n"); break;

	}
	return 0;
}

4注意

为了文章的严谨性,参考了教材由李绍华,刁建华,李敏主编的《c语言程序设计基础》一书,采用的其他图片皆标注了出处,谢谢大家。如果出现了错误,欢迎指正。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值