C语言程序设计学习003——分支结构

news/2024/11/29 1:50:42/

在C语言中,分支结构是一种常用的控制结构,用于实现根据条件的不同而采取不同的措施。分支结构的语法形式包括if语句、if-else语句、if-else if语句、switch语句等,下面将逐一介绍它们的使用方法和注意事项。

if语句

if语句是最简单的分支结构,语法形式为:

if (condition)statement;

 

其中,condition是一个布尔表达式,如果condition的值为真,则执行statement;否则,跳过statement。if语句只能控制一个语句的执行,如果要控制多个语句的执行,需要使用复合语句(用{}括起来的多条语句)。

if-else语句

if-else语句可以在if语句的基础上,添加一个else分支,语法形式为:

if (condition)statement1;
elsestatement2;

如果condition的值为真,则执行statement1;否则,执行statement2。注意,if-else语句也只能控制一个语句的执行,如果要控制多个语句的执行,需要使用复合语句。

if-else if语句

if-else if语句可以在if-else语句的基础上,添加多个else if分支,语法形式为:

if (condition1)statement1;
else if (condition2)statement2;
else if (condition3)statement3;
elsestatement4;

如果condition1的值为真,则执行statement1;如果condition1的值为假,但condition2的值为真,则执行statement2;以此类推。如果所有的条件都不成立,则执行statement4。

switch语句

switch语句是一种更灵活、更强大的分支结构,适用于在多个选项之间进行选择的情况。语法形式为:

switch (expression)
{case constant1: statement1; break;case constant2: statement2; break;...default: statementN;
}

其中,expression是一个表达式,constant1、constant2等是常量,可以是整数、字符或枚举类型的常量。如果expression的值等于constant1,则执行statement1;如果expression的值等于constant2,则执行statement2;以此类推。如果expression的值都不等于常量,则执行default语句。
下面我们通过一个例子来说明switch语句的使用:

#include <stdio.h>int main() {int grade;printf("请输入您的分数:");scanf("%d", &grade);switch(grade/10) {case 10:case 9:printf("您的成绩等级为A\n");break;case 8:printf("您的成绩等级为B\n");break;case 7:printf("您的成绩等级为C\n");break;case 6:printf("您的成绩等级为D\n");break;default:printf("您的成绩等级为E\n");}return 0;
}

上述代码中,我们根据用户输入的分数,使用switch语句来判断其成绩等级。根据一般的成绩计算方法,我们将分数除以10来得到其整除结果作为判断条件。如果整除结果为10或9,则输出成绩等级为A;如果整除结果为8,则输出成绩等级为B,以此类推。最后我们加上一个default分支来处理分数超出范围的情况,输出成绩等级为E。

我们编译并执行上述代码,输入60,输出如下:

请输入您的分数:60
您的成绩等级为D

输入85,输出如下:

请输入您的分数:85
您的成绩等级为B

可以看到,根据用户输入的不同分数,程序成功地判断出了对应的成绩等级。

总的来说,分支结构是程序设计中必不可少的一部分。if-else和switch语句都是常用的分支结构,程序员需要灵活运用这些语句来控制程序的执行流程,从而实现所需的功能。


http://www.ppmy.cn/news/52111.html

相关文章

[读书笔记] 从问题和公式角度理解 Diffusion Model

[小全读书笔记] 从问题和公式角度理解 Diffusion Model 1. Diffusion Model的结构1.1 定义与限制1.2 定义与限制的数学体现 2. Diffusion Model的模型训练2.1 似然函数转换成ELBO2.2 拆解ELBO2.3 求解关键&#xff1a; q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1…

java基础(一)-虚拟机和第一个命令

虚拟机&#xff1a; 用 Java 语言编写的程序由 Java 虚拟机 (JVM) 来执行。JVM 是一个特殊的程序&#xff0c;它知道如何执行用 Java 语言编写的程序。并且它的命令列表涵盖范围很大&#xff0c;比如&#xff1a; System.out.println(“你以为我会说虚拟机是由什么组成&#x…

Spring(11. 循环依赖 - 周阳)学习笔记

上一篇 &#xff1a;10. 面试问题简析 文章目录 1. Spring AOP1.1. Aop 常用注解1.2 测试前的准备工作1.2.1 业务类1.2.2 切面类 1.3 Spring4 下的测试1.3.1 POM 文件1.3.2 创建测试类1.3.3 Aop 测试结果 1.4 Spring 5 下的测试1.4.1 POM 文件1.4.2 创建测试类1.4.3 Aop 测试结…

【UE】倒计时归零时结束游戏

上一篇博客&#xff08;【UE】一个简易的游戏计时器&#xff09;完成了游戏时间每秒1的功能&#xff0c;本篇博客在此基础上完成倒计归零时结束游戏的功能 效果 步骤 1. 打开“ThirdPersonGameMode”&#xff0c;将剩余的秒数和分钟数的默认值分别设置为1和59 在事件图表中添…

Flutter 状态管理框架 Provider 和 Get 原理分析

为什么需要状态管理&#xff1f; 首先&#xff0c;为什么需要状态管理&#xff0c;这是因为 Flutter 基于 声明式 构建 UI &#xff0c;使用状态管理的目的之一就是解决「声明式」开发带来的问题。 「声明式」开发是一种区别于传原生的方式&#xff0c;所以我们没有在原生开发…

对象=拷贝构造,有无指针成员的不同之处

比如类Add&#xff0c;Add AB: 1、当新声明一个对象并赋初始值时&#xff0c;使用时&#xff0c;编译器会默认&#xff0c;将B的成员变量&#xff0c;拷贝赋值给B&#xff0c;使用的是浅拷贝&#xff0c;该函数自己不写到类内部时&#xff0c;编译器会默认隐式自带&#xff1b…

Kafka技术基础

Apache Kafka发源于LinkedIn&#xff0c;于2011年成为Apache的孵化项目&#xff0c;随后于2012年成为Apache的主要项目之一&#xff0c;是消息队列的一种实现方式&#xff0c;提供消息的持久化。Kafka使用Scala和Java进行编写。Apache Kafka是一个快速、可扩展的、高吞吐、可容…

Docker部署MySQL主从复制

文章目录 平台说明一、Docker创建网络二、创建MySQL主从容器1.拉取镜像2.查看镜像3.创建启动容器 三、主从配置1.主机配置文件2.从机配置文件3.注意事项4.重启容器5.连接主从数据库主机配置从机配置启动从机复制 四、测试主从复制 平台说明 操作系统&#xff1a;Windows 11 Do…