首页 > 其他分享 >C语言学习第九天

C语言学习第九天

时间:2024-01-30 16:32:23浏览次数:15  
标签:语句 第九天 执行 示例 int else 学习 printf C语言

一、分支语句(if  switch)

语法结构:
if(表达式)
  语句;

if (表达式)
  语句1:
else
  语句2;

//多分支
if(表达式)
  语句1;
else if (表达式)
  语句2;
else
  语句3;

示例代码:

int main()
{
	int age = 0;
	printf("输入你的年龄:");
	scanf_s("%d", &age);
	if (age < 18)
		printf("未成年");
	else if (18 <= age && age < 24)
		printf("青少年");
	else if (24 <= age && age < 60)
		printf("中年");
	else
		printf("老年");

	return 0;

}

另一种逻辑:

int main()
{
	int age = 0;
	printf("输入你的年龄:");
	scanf_s("%d", &age);
	if (age < 18)
		printf("未成年");
	else
	{
		if (18 <= age && age < 24)
		printf("青少年");
		else if (24 <= age && age < 60)
		printf("中年");
		else
		printf("老年");
	}

	return 0;

}

注意条件如果成立,要执行多条语句,应该使用代码块

int main()
{
	if (表达式)
	{
		语句列表1;
	}
	else
	{
		语句列表2;
	}
	return 0;
}

if-else的匹配原则:

在C语言中,ifelse语句的匹配遵循一个简单的规则:每个else都与最近的尚未匹配的if配对。这种配对机制是基于代码的结构,特别是基于代码块的嵌套层次来确定的。

这里有一些关键点来帮助理解:

  1. 基本结构if语句可以单独存在,但else语句必须跟随一个ifif语句后面可以紧跟一个else
  2. 匹配原则:当有多个ifelse混合时,每个else都与最近的尚未配对的if匹配。
  3. 代码块:使用大括号{}可以创建一个代码块,它可以帮助明确if-else结构。如果没有大括号,ifelse仅与紧随其后的一条语句相关联。
  4. 嵌套if语句可以嵌套,即在一个ifelse代码块内部可以有另一个if-else结构。

下面是一些示例来说明这些原则:

if (condition1)
    statement1; // 只有当condition1为真时执行
else if (condition2)
    statement2; // 只有当condition1为假且condition2为真时执行
else
    statement3; // 当condition1和condition2都为假时执行

if (condition4) {
    if (condition5)
        statement4;
    else
        statement5; // 这个else匹配最近的未配对的if,即condition5的if
}

在第二个例子中,内部的else与内部的if匹配,而不是与外部的if匹配。使用大括号可以帮助清晰地定义这种嵌套结构。

if-else的常用方法:


  1. 基本语法
if (condition) {
    // 当条件为真时执行
} else {
    // 当条件为假时执行
}

示例:检查一个条件是否成立。

  1. 条件表达式
int a = 10, b = 20;
if (a < b) {
    // 当a小于b时执行
}

示例:比较两个变量的值。

  1. 代码块
if (a > b) {
    printf("a is greater than b");
    a++;
} else {
    printf("b is greater or equal to a");
    b++;
}

示例:使用代码块执行多条语句。

  1. 嵌套if-else结构
if (a > b) {
    if (a > 100) {
        // a大于b且大于100时执行
    } else {
        // a大于b但不大于100时执行
    }
} else {
    // a小于或等于b时执行
}

示例:展示如何使用嵌套if-else处理多层条件。

  1. 逻辑清晰
if (a > 0) {
    // a为正数时执行
} else {
    // a为0或负数时执行
}

示例:确保条件清晰且容易理解。

  1. else if的使用
if (a == 0) {
    // a为0时执行
} else if (a < 0) {
    // a为负数时执行
} else {
    // a为正数时执行
}

示例:使用else if处理多种不同的情况。

  1. 布尔逻辑的使用
if (a > 0 && b > 0) {
    // a和b都为正数时执行
}

示例:使用逻辑运算符组合多个条件。

  1. 避免条件模糊
int x = 5;
if (x > 0 && x < 10) {
    // x大于0且小于10时执行
}

示例:使用明确的条件避免歧义。

  1. 代码格式和风格
if (a > b) {
    printf("A");
} else {
    printf("B");
}

示例:保持一致的代码格式和风格。

  1. 错误处理
int result = someFunction();
if (result == ERROR_CODE) {
    // 错误处理
} else {
    // 正常执行
}

示例:使用if-else处理函数返回的错误代码。

以上是针对每个关键点的示例代码,希望这些示例能帮助您更好地理解和使用if-else语句。



标签:语句,第九天,执行,示例,int,else,学习,printf,C语言
From: https://blog.51cto.com/u_16178736/9489963

相关文章

  • 几个人工智能的学习建议
    近几年人工智能的发展势头很猛,很多人都想入行学习人工智能,却苦于不知如何正确学习。给大家整理总结了六条同行的经验和避坑指南,供大家参考,少走弯路,快速进入学习状态。1.熟悉至少一种编程语言编程语言是实现源码功能的基础,也是调试、理解代码的必要条件,人工智能相对依赖的语言是Pyth......
  • SQLServer 字符集的学习与验证
    SQLServer字符集的学习与验证背景因为开发JDBCforSQLServer的一群大佬自作主张的进行了AsUnicode的默认参数值设置.导致数据库采用了varchar的列到出现了隐式转换,有非常大的性能损耗.单独改过来又担心出现乱码的问题(毕竟这个比较2的选项就是为了解决乱码问题)没办......
  • 软件测试学习笔记丨JMeter_实现分组并发
    Jmeter_实现分组并发实现思路:线程数和时间进行参数化,使用命令模式进行执行,再添加报告进行每次展示。执行时可以使用linux定时器或者脚本调用。命令执行命令启动jmeter命令:jmeter-Jpara1=4-Jpara2=15-n-tpreClassMenu_1117.jmx-le:/res/res1.jtl-e-oe:/res/res/......
  • three学习-vscode-创建项目01
    安装node之后,使用vscode打开自己创建的一个文件夹1、创建我们的项目目录存放的文件夹study01再vscode中打开创建的文件夹2、创建vite支持环境npminitvite@latest输入y输入项目名称:studyapp01框架选择 3、进入项目,安装依赖,运行项目cdstudyapp01npminstallnpm......
  • 3.3 贝叶斯估计与贝叶斯学习
    贝叶斯估计贝叶斯估计是把待估计的参数本身也看做随机变量,根据观测数据对参数分布进行估计。即把概率密度函数的参数估计问题看作贝叶斯决策问题,决策连续空间里的参数取值。步骤:1、确定θ的先验分布密度p(θ)[对标先验概率]2、形式上求出样本集的联合分布[对标条件概率密......
  • Java 系统学习 | Springboot 数据验证
    本篇使用Springboot3框架,IDEA2022编辑器,java17版本。在上一篇的基础上进行优化添加依赖在pom.xml中添加依赖,记得更新maven<!--validation依赖--><dependency><groupId>org.springframework.boot</groupId><artifactI......
  • 动态 DP 学习笔记
    动态DPP4719动态DP给定一棵\(n\)(\(n\leqslant10^5\))个点的树,点带点权。有\(m\)(\(m\leqslant10^5\))次操作,每次操作给定\(x,y\),表示修改点\(x\)的权值为\(y\)。你需要在每次操作之后求出这棵树的最大权独立集的权值大小。首先考虑\(m=0\)时的做法,可以......
  • 影刀rpa:第二个项目学习心得
    教程有说到元素的关联操作,教程说自上而下的html路径,一时之间没弄清楚,索性就去看了下网页的html源码,才弄清楚到底是咋回事: 我是先选中了列表子元素的价格字段,选择两次以后就能选择到所有列表子元素的价格字段了: 我们点击编辑,可以看到以web开头的标签,x:name就是html标签的......
  • 【机器学习】常见算法详解第2篇:KNN之kd树介绍(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚......
  • 白话机器学习算法入门笔记
    机器学习中常见的十大算法包括:1.线性回归(LinearRegression)-用于预测连续值的简单线性回归模型。2.逻辑回归(LogisticRegression)-用于分类问题的logistic回归模型。3.决策树(DecisionTree)-一种流行的树形分类与回归方法。4.支持向量机(SVM)-一种二分类模型,Fi......