C语言-基础了解-08-C判断
创始人
2024-05-29 08:15:36
0

@C判断

一、C判断

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。

下面是大多数编程语言中典型的判断结构的一般形式:
在这里插入图片描述

二、判断语句

2.1 if语句

语法
C 语言中 if 语句的语法:

if(boolean_expression)
{
/* 如果布尔表达式为真将执行的语句 */
}

果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。

C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
在这里插入图片描述

#include int main ()
{/* 局部变量定义 */int a = 10;/* 使用 if 语句检查布尔条件 */if( a < 20 ){/* 如果条件为真,则输出下面的语句 */printf("a 小于 20\n" );}printf("a 的值是 %d\n", a);return 0;
}

执行结果:
在这里插入图片描述

2.2 if…else 语句

一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
语法
C 语言中 if…else 语句的语法:

if(boolean_expression)
{
/* 如果布尔表达式为真将执行的语句 /
}
else
{
/
如果布尔表达式为假将执行的语句 */
}

在这里插入图片描述

#include int main ()
{/* 局部变量定义 */int a = 100;/* 检查布尔条件 */if( a < 20 ){/* 如果条件为真,则输出下面的语句 */printf("a 小于 20\n" );}else{/* 如果条件为假,则输出下面的语句 */printf("a 大于 20\n" );}printf("a 的值是 %d\n", a);return 0;
}

执行结果:
a 大于 20
a 的值是 100


if…else if…else 语句
一个 if 语句后可跟一个可选的 else if…else 语句,这可用于测试多种条件。

当使用 if…else if…else 语句时,以下几点需要注意:

一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试
语法
C 语言中的 if…else if…else 语句的语法:

if(boolean_expression 1)
{
/* 当布尔表达式 1 为真时执行 /
}
else if( boolean_expression 2)
{
/
当布尔表达式 2 为真时执行 /
}
else if( boolean_expression 3)
{
/
当布尔表达式 3 为真时执行 /
}
else
{
/
当上面条件都不为真时执行 */
}

#include int main ()
{/* 局部变量定义 */int a = 100;/* 检查布尔条件 */if( a == 10 ){/* 如果 if 条件为真,则输出下面的语句 */printf("a 的值是 10\n" );}else if( a == 20 ){/* 如果 else if 条件为真,则输出下面的语句 */printf("a 的值是 20\n" );}else if( a == 30 ){/* 如果 else if 条件为真,则输出下面的语句 */printf("a 的值是 30\n" );}else{/* 如果上面条件都不为真,则输出下面的语句 */printf("没有匹配的值\n" );}printf("a 的准确值是 %d\n", a );return 0;
}

执行结果:
没有匹配的值
a 的准确值是 100


2.3 嵌套 if 语句

可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
语法
C 语言中 嵌套 if 语句的语法:

if( boolean_expression 1)
{
/* 当布尔表达式 1 为真时执行 /
if(boolean_expression 2)
{
/
当布尔表达式 2 为真时执行 */
}
}

#include int main ()
{/* 局部变量定义 */int a = 100;int b = 200;/* 检查布尔条件 */if( a == 100 ){/* 如果条件为真,则检查下面的条件 */if( b == 200 ){/* 如果条件为真,则输出下面的语句 */printf("a 的值是 100,且 b 的值是 200\n" );}}printf("a 的准确值是 %d\n", a );printf("b 的准确值是 %d\n", b );return 0;
}

执行结果:
a 的值是 100,且 b 的值是 200
a 的准确值是 100
b 的准确值是 200


2.4 switch 语句

一个 switch 语句允许测试一个变量等于多个值时的情况。
语法
C 语言中 switch 语句的语法:

switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 /
case constant-expression :
statement(s);
break; /
可选的 /
/
您可以有任意数量的 case 语句 /
default : /
可选的 */
statement(s);
}

switch 语句必须遵循下面的规则:

1、switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
2、在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
3、case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
4、当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
5、当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
6、不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
7、一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
在这里插入图片描述

#include int main ()
{/* 局部变量定义 */char grade = 'B';switch(grade){case 'A' :printf("很棒!\n" );break;case 'B' :case 'C' :printf("做得好\n" );break;case 'D' :printf("您通过了\n" );break;case 'F' :printf("最好再试一下\n" );break;default :printf("无效的成绩\n" );}printf("您的成绩是 %c\n", grade );return 0;
}

执行结果:
做得好
您的成绩是 B


2.5 嵌套 switch 语句

可以在一个 switch 语句内使用另一个 switch 语句。
您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。

switch(ch1) {
case ‘A’:
printf(“这个 A 是外部 switch 的一部分” );
switch(ch2) {
case ‘A’:
printf(“这个 A 是内部 switch 的一部分” );
break;
case ‘B’: /* 内部 B case 代码 /
}
break;
case ‘B’: /
外部 B case 代码 */
}

#include int main ()
{/* 局部变量定义 */int a = 100;int b = 200;switch(a) {case 100: printf("这是外部 switch 的一部分\n");switch(b) {case 200:printf("这是内部 switch 的一部分\n");}}printf("a 的准确值是 %d\n", a );printf("b 的准确值是 %d\n", b );return 0;
}

执行结果:
这是外部 switch 的一部分
这是内部 switch 的一部分
a 的准确值是 100
b 的准确值是 200


三、? : 运算符(三元运算符)

Exp1 ? Exp2 : Exp3;

其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。

? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个表达式的值。
在这里插入图片描述

#includeint main()
{int num;printf("输入一个数字 : ");scanf("%d",&num);(num%2==0)?printf("偶数"):printf("奇数");
}

执行结果:
在这里插入图片描述

菜鸟编程,学习记录

相关内容

热门资讯

美参议院通过法案 拟终止特朗普... 格隆汇4月3日|美国参议院以51票对48票通过了一项法案,该法案将终止美国总统特朗普对加拿大进口商品...
日股日经指数跌破35000点 ... 日经225指数跌破35000点,为2024年8月9日以来首次,日内跌3.43%。日本东证指数下跌3%...
中国金融发展与银柘科技签订战略... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...
外滩社区长者食堂春日焕新,菜品... 转自:上观新闻在这个生机勃勃的春日,外滩社区长者食堂迎来了令人欣喜的菜品升级,为社区居民们带来了全新...
新车密集上市,终端继续降价!3... 本报(chinatimes.net.cn)记者刘凯 北京报道4月初,国内新能源汽车品牌陆续公布了3月...
哈尔滨至新疆旅游专列 计划5月...   本报讯(记者 刘希阳)旅游专列又要出发了。继3月份哈尔滨至港澳旅游专列开通后,计划5月21日由哈...
中国将多措并举减轻企业负担 来源:人民日报海外版 新华社北京4月2日电(记者周圆、张辛欣)记者从2日召开的国务院减轻企业负担部际...
美财政部长称乌克兰代表团最早或... 据央视新闻消息,当地时间4月2日,美国财政部长贝森特在采访中表示,乌克兰团队可能最早在本周抵达美国。...
冰火淬炼30年 窗花“烧入”冰...     “以前是柴窑,就是通过柴火烧窑,燃料的成本特别高,而且温度不好把控,投入特别大。”王昌利说,...
像“搭积木”一样盖房子!河北省... 转自:河北新闻网像“搭积木”一样盖房子我省装配式农房建设试点基本实现县级全覆盖石家庄市藁城区南墩村的...
夯实基础 拓宽经营服务领域   村民在王家河供销社购买农资  无限春光里,王益大地上春耕春播火热进行,该区供销系统在农资供应、农...
100个AI岗位面试题目,分享... 去年开了一期 AI 产品经理课程,发现大家是为了找工作来“补课”的,所以增加了一些针对求职转岗的内容...
“清明”假期交通安全出行提示请... 转自:上观新闻市公安局交通管理总队介绍,结合近期道路交通事故情况,经研判分析,今年“清明”假期部分郊...
投资日历:周四资本市场大事提醒 转自:财联社【投资日历:周四资本市场大事提醒】 ①今日暂无新股申购。 ②商务部定于4月3日举行新闻发...
库克减持苹果套现1.75亿 据报道苹果公司首席执行官蒂姆・库克近日通过出售公司股票,获利超 2400 万美元(现汇率约合 1.7...
国际协同,驶向汽车安全创新未来 来源:人民日报海外版 本报重庆电(记者陈静文)近日,2025中国汽研汽车指数国际交流会暨Euro N...
AI复活逝者,风口上的情感牢笼 本文来自微信公众号:三联电子厂Pro,作者:哈尼,题图来自:AI生成在人工智能技术蓬勃发展的现在,清...
谷歌调整Gemini领导层:实... 据Semafor报道,负责谷歌 AI 聊天机器人发布的谷歌高管 Sissie Hsaio 将辞去 G...
发挥政协履职优势 助推哈市“冰...   本报讯(记者 李玥)4月2日,市政协党组理论学习中心组召开集体学习会议,进一步深入学习贯彻习近平...
给学生放春假,也要让家长休“陪... 转自:北京青年报汪昌莲连续三天的清明节假期即将开启,多地发文放春假,一些大中小学学生在清明假期或稍晚...