当前位置: 首页 > news >正文

【小宁的学习日记2 C语言】C语言判断

目录

一、判断结构概述

二、C 语言中的判断语句

1. if 语句(单分支判断)

作用

语法

实例:判断数字是否为正数

2. if...else 语句(双分支判断)

作用

语法

实例:判断成绩是否及格

3. 嵌套 if 语句(多分支嵌套)

作用

语法

实例:判断成绩等级

4. switch 语句(多等值判断)

作用

语法

实例:根据数字输出星期几

5. 嵌套 switch 语句

作用

实例:判断月份所属季节(简化)

6. 三元运算符 ? :(简化双分支)

作用

语法

注意

实例 1:判断奇偶(输出)

实例 2:求两数最大值(赋值)

三、总结:判断结构适用场景


一、判断结构概述

判断结构的核心是根据条件的 “真 / 假” 执行不同代码块,是程序实现 “分支逻辑” 的基础。在 C 语言中,真假判定规则非常明确:

  • 非零值(如1-5)或非空值(如非空字符串)被视为 true(真);
  • 零(0)或空值(如NULL)被视为 false(假)。

所有判断语句均围绕这一规则展开,核心目标是 “按需执行代码”。

二、C 语言中的判断语句

1. if 语句(单分支判断)

作用

单个条件为真时,执行指定代码块;条件为假时,跳过该代码块。

语法
if (布尔表达式) {// 条件为真时执行的语句(可多条)
}
// 条件为假时,直接执行此处代码
  • 布尔表达式:结果为 “真 / 假” 的表达式(如num > 0a == b);
  • 若语句块仅 1 条语句,{}可省略(但推荐保留,增强可读性)。
实例:判断数字是否为正数
#include <stdio.h>
int main() {int num = 8;if (num > 0) {  // 条件:num大于0(真)printf("%d是正数\n", num);  // 执行此句}printf("判断结束\n");  // 无论条件真假,都会执行return 0;
}
// 运行结果:8是正数 → 判断结束

2. if...else 语句(双分支判断)

作用

解决 “二选一” 场景:条件为真时执行一个代码块,为假时执行另一个代码块,两个分支必执行其一。

语法
if (布尔表达式) {// 条件为真时执行的语句
} else {// 条件为假时执行的语句
}
实例:判断成绩是否及格
#include <stdio.h>
int main() {int score = 75;if (score >= 60) {  // 条件:成绩≥60(真)printf("成绩及格\n");} else {  // 条件为假时执行printf("成绩不及格\n");}return 0;
}
// 运行结果:成绩及格

3. 嵌套 if 语句(多分支嵌套)

作用

当需要多层条件判断时(如 “先判断是否及格,再判断是否优秀”),可在ifelse内部嵌套另一个if语句。

语法
if (条件1) {// 条件1为真时执行if (条件2) {// 条件1和条件2均为真时执行} else {// 条件1为真、条件2为假时执行}
} else {// 条件1为假时执行
}
实例:判断成绩等级
#include <stdio.h>
int main() {int score = 92;if (score >= 60) {  // 第一层:是否及格if (score >= 90) {  // 第二层:是否优秀printf("成绩优秀\n");} else {  // 及格但不优秀printf("成绩良好\n");}} else {  // 不及格printf("成绩不及格\n");}return 0;
}
// 运行结果:成绩优秀

4. switch 语句(多等值判断)

作用

当需要判断一个变量与多个 “固定值” 是否相等时(如 “根据数字输出星期几”),比嵌套if更简洁。

语法
switch (变量/表达式) {  // 注意:变量/表达式必须是“整型”或“字符型”case 常量1:// 变量 == 常量1 时执行的语句break;  // 跳出switch(必须加,否则会“穿透”到下一个case)case 常量2:// 变量 == 常量2 时执行的语句break;// ... 更多casedefault:// 变量与所有case常量都不相等时执行(可选)break;
}
  • 关键规则:
    1. case后必须是常量(如1'A'),不能是变量或表达式;
    2. break的作用是 “执行完当前 case 后退出 switch”,若省略,会继续执行下一个 case(即使不匹配);
    3. default可放在任意位置,通常在最后,用于处理 “未匹配的情况”。
实例:根据数字输出星期几
#include <stdio.h>
int main() {int day = 3;switch (day) {case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");  // 执行此句break;  // 跳出switch,避免穿透case 4:printf("星期四\n");break;default:printf("输入错误\n");break;}return 0;
}
// 运行结果:星期三

5. 嵌套 switch 语句

作用

在一个switch内部嵌套另一个switch,处理 “多层等值判断”(实际开发中较少用,易导致逻辑复杂)。

实例:判断月份所属季节(简化)
#include <stdio.h>
int main() {int season = 1;  // 1=春季,2=夏季...int month = 2;   // 2月switch (season) {case 1:printf("春季:");switch (month) {  // 嵌套switch:判断春季的具体月份case 1: printf("1月\n"); break;case 2: printf("2月\n"); break;case 3: printf("3月\n"); break;}break;// ... 其他季节case}return 0;
}
// 运行结果:春季:2月

6. 三元运算符 ? :(简化双分支)

作用

if...else的 “表达式形式”,用于简单的二选一赋值或输出,代码更简洁。

语法
Exp1 ? Exp2 : Exp3;
  • 执行逻辑:
    1. 先计算Exp1(布尔表达式);
    2. Exp1为真,整个表达式的值 = Exp2的值;
    3. Exp1为假,整个表达式的值 = Exp3的值。
注意
  • 三元运算符是 “表达式”(有返回值),可直接赋值给变量;
  • 适合简单逻辑,复杂逻辑(如多条语句)仍需用if...else
实例 1:判断奇偶(输出)
#include <stdio.h>
int main() {int num = 7;// 条件:num%2==0(是否偶数),真则输出“偶数”,假则输出“奇数”(num % 2 == 0) ? printf("偶数") : printf("奇数");return 0;
}
// 运行结果:奇数
实例 2:求两数最大值(赋值)
#include <stdio.h>
int main() {int a = 5, b = 9, max;// 条件:a>b,真则max=a,假则max=bmax = (a > b) ? a : b;printf("最大值:%d", max);return 0;
}
// 运行结果:最大值:9

三、总结:判断结构适用场景

判断结构适用场景优点
if单条件判断(仅需处理 “真” 的情况)简单直观
if...else双分支判断(需处理 “真 / 假” 两种情况)逻辑清晰,适合复杂语句
嵌套if多层条件判断(如成绩等级)灵活处理多分支逻辑
switch单变量多等值判断(如星期、月份)代码简洁,避免嵌套if冗余
三元运算符? :简单二选一(赋值或单条输出)代码紧凑,节省行数

核心原则:逻辑简单用三元 /if,二选一用 if...else,多等值用 switch,多层逻辑用嵌套 if

http://www.dtcms.com/a/533176.html

相关文章:

  • cp网站开发多少钱wordpress获取当前目录父目录id
  • 一个空间可以放几个网站深圳市招聘网站
  • 上海网站建设公司官网如何做网站推广最有效
  • 安卓开发如何实现自定义View
  • 【netty】基于主从Reactor多线程模型|如何解决粘包拆包问题|零拷贝
  • python数据清洗与预处理指南
  • 【模型评测】主流编程大模型QML编程横向对比
  • 网站怎么做团购什么是网络营销网络营销与电商营销有什么区别
  • Go语言:常量设置的注意事项
  • 网络营销导向企业网站建设的一般原则包括徐州网站排名系统
  • 基本魔法语言分支和循环 (二) (C语言)
  • 根目录下两个网站怎么做域名解析科技进步是国防强大的重要的保证
  • 微网站建设c品牌网站设计流程
  • 有哪些cua模型 Computer-Using Agent
  • 网站建设方案模板高校物流信息网站
  • 网工综合知识总结
  • 科技前沿七日谈:从AI普惠到硬件创新,技术正重塑产业边界
  • 初识AES
  • (五)图文结合-详解BLE连接原理及过程
  • 资产管理公司网站建设费用怎么入账电子商务行业发展趋势及前景
  • 机器学习日报05
  • 成都公园城市建设局网站seo诊断分析工具
  • 算法基础 典型题 数学(基础)
  • 网站开发运作wordpress数据库字典
  • 博州住房和城乡建设部网站wordpress开发教程
  • 邢台123网站模板百度推广官方投诉电话
  • 找网站开发人员wordpress ftp附件
  • Xshell 总是在最前端显示
  • 湖北省建设厅官方网站文件网站建设方案书写
  • 网站的成功案例wordpress 登陆白屏