第8讲1 条件运算符与条件表达式 switch语句、选择结构程序设计

合集下载

C语言中的条件语句与循环语句详解

C语言中的条件语句与循环语句详解

C语言中的条件语句与循环语句详解C语言是一种广泛应用于计算机编程领域的高级程序设计语言。

在C语言中,条件语句和循环语句是非常重要的概念之一。

它们能够让程序根据不同的条件或需求来进行不同的操作和控制流程。

本文将详细讲解C语言中的条件语句和循环语句。

一、条件语句条件语句用于在程序中根据给定的条件选择性地执行某个操作或一系列操作。

C语言中的条件语句主要有if语句和switch语句。

1. if语句if语句是C语言中最基本的条件语句,其语法格式如下:```cif (条件) {// 如果条件为真,执行这里的语句块}```在if语句中,条件是一个返回值为真或假的表达式。

如果条件为真,那么将执行if语句中花括号内的代码块;如果条件为假,则跳过代码块,继续向下执行。

if语句还可以与else语句一起使用,实现二选一的逻辑判断:```cif (条件) {// 如果条件为真,执行这里的语句块} else {// 如果条件为假,执行这里的语句块}```2. switch语句switch语句用于在多个选项中选择一个进行操作。

其语法格式如下:```cswitch (表达式) {case 值1:// 如果表达式的值等于值1,执行这里的语句块break;case 值2:// 如果表达式的值等于值2,执行这里的语句块break;// 其他case语句default:// 如果表达式的值都不匹配上述任何一个case的值,执行这里的语句块break;}```在switch语句中,表达式的值会与每个case后面的值进行比较,如果匹配,则执行相应的代码块。

每个case语句后面都要使用break语句来结束本次选择,如果没有匹配的case值,将执行default后面的代码块。

二、循环语句循环语句用于重复执行某个操作或一系列操作,直到满足特定条件才退出循环。

C语言中的循环语句主要有for循环、while循环和do-while循环。

1. for循环for循环是C语言中最常用的循环语句,其语法格式如下:```cfor (初始化表达式; 循环条件; 更新表达式) {// 循环体```在for循环中,初始化表达式在循环开始前执行一次,循环条件在每次循环开始前进行判断,如果为真,则执行循环体中的代码块;更新表达式在每次循环结束后执行。

C语言第四章.选择结构程序设计

C语言第四章.选择结构程序设计

case 常量表达式n: 语句n; default : 语句n+1; }
语句的执行过程:
先计算表达式的值,并逐个与其后的常量表达式值相 比较; 当表达式的值与某个常量表达式的值相等时,即执行
其后的语句;
然后不再进行判断,继续执行后面所有case后的语句;
如表达式的值与所有case后的常量表达式均不相同时,
a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b)
2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”
来表示。
反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”。
3)逻辑运算的规则:
(1)与运算&&
条件运算符和条件表达式
条件表达式通常用于赋值语句之中。 例如条件语句:
if(a>b) max=a;
else max=b; 可用条件表达式写为 max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a 赋予max, 否则把b 赋予max。
注意以下几点:
条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。 因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
注意:
(3) 在if 语句的三种形式中,所有的语句应为单个语句,
如果要想在满足条件时执行一组(多个)语句,则必须
把这一组语句用{ } 括起来组成一个复合语句。 例如:交换两个变量 if (a>b) { t= a; a=b; b=t; }

c语言switch语句的用法详解

c语言switch语句的用法详解

C语言是一种广泛使用的计算机编程语言,它具有丰富的语法和功能,能够实现各种复杂的编程任务。

在C语言中,switch语句是一种非常重要的控制语句,能够根据表达式的值来选择不同的执行路径。

在本文中,我们将对C语言中switch语句的用法进行详细的解释和讨论,希望能够帮助读者更好地理解和掌握这一语句的使用。

1. switch语句的基本语法在C语言中,switch语句的基本语法如下所示:```cswitch (expression) {case constant1:statement1;break;case constant2:statement2;break;...default:statement;}```其中,expression是一个整数表达式,可以是变量、常量或者复杂的表达式。

在switch语句中,expression的值将会与每个case后面的常量进行比较,直到找到匹配的常量为止。

如果找到了匹配的常量,那么与该常量对应的语句将会被执行,然后switch语句将会被终止。

如果没有找到匹配的常量,那么将会执行default后面的语句。

在case后面的语句执行完毕之后,需要使用break语句来终止switch 语句的执行,否则将会继续执行后面的语句。

2. switch语句的使用示例为了更好地理解switch语句的使用方法,我们接下来将给出一个具体的示例。

假设我们需要根据用户输入的数字来显示对应的星期几,那么可以使用switch语句来实现这个功能。

示例代码如下:```c#include <stdio.h>int m本人n() {int day;printf("请输入一个数字(1-7):");scanf("d", day);switch(day) {case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;default:printf("输入错误!\n");}return 0;}```在这个示例中,我们首先定义了一个整型变量day,然后通过scanf 函数来接收用户输入的数字。

学习计算机编程中的条件语句与循环结构

学习计算机编程中的条件语句与循环结构

学习计算机编程中的条件语句与循环结构在计算机编程的学习过程中,条件语句和循环结构是非常重要的概念。

它们能够使程序根据不同的条件或重复执行特定的代码块,为开发者提供了强大的逻辑控制能力。

本文将介绍条件语句和循环结构的基本概念以及如何在学习计算机编程时灵活应用它们。

一、条件语句条件语句是编程中最基本的控制结构之一。

它基于一个条件的真假来判断是否执行特定的代码块。

在计算机编程中,常见的条件语句有if语句和switch语句。

1. if语句if语句用于判断一个条件是否为真,如果条件为真,则执行相应的代码块。

其基本语法如下:```if (条件) {// 执行代码块}```在编写if语句时,我们需要注意以下几个关键点:- 条件必须是一个布尔表达式或返回布尔值的表达式;- 可以使用逻辑运算符(如&&和||)结合多个条件;- 可以使用if-else语句来处理条件不满足的情况。

2. switch语句switch语句根据一个表达式的值,选择性地执行与之匹配的代码块。

其基本语法如下:```switch (表达式) {case 值1:// 执行代码块1break;case 值2:// 执行代码块2break;default:// 执行默认代码块break;}```在使用switch语句时,需要特别注意以下几点:- 表达式的值必须为整数、字符或枚举类型;- case后的值必须与表达式的值完全匹配才会执行对应的代码块;- 每个case后需要使用break语句来结束代码块,否则将会继续执行后续的代码;如果没有匹配的case,则执行默认代码块。

二、循环结构循环结构允许我们反复执行一段代码块,直到满足退出条件为止。

在计算机编程中,常见的循环结构有for循环、while循环和do-while 循环。

1. for循环for循环用于指定初始条件、循环条件和每次迭代后的更新操作。

通过这些条件和操作,可以重复执行一个代码块多次。

控制语句-选择结构(switch)

控制语句-选择结构(switch)

控制语句-选择结构(switch)switch选择语句: switch语句⼀般情况下与if语句的效果是等效的,但是switch语句的执⾏速率⽐嵌套的if语句要快,switch语句不分单选/双选/多选结构,它的结构取决于代码的逻辑。

表达式:switch (条件表达式) {case 1: //条件表达式执⾏完毕后,switch判断该值是否为1,如果是1,则执⾏case1 以下的代码代码块1;break;case 2: //case1执⾏完毕后,会继续判断该值是否为2,如果是,同理执⾏case2以下的代码代码块2;break;default: //如果条件表达式执⾏完毕,且该值即不等于1也不等于2,则执⾏该代码块代码块3;break;}(注意:为了防⽌case穿透问题,⼀般在使⽤switch语句时都必须加上break(跳出),否则case下余的代码也会被编译执⾏,就毫⽆意义)(注意:在JDK7之后的版本,switch语句还⽀持String类型,也就是说case后⾯的值不仅可以为数字,也可以为字符/字符串等。

但是如果使⽤float与double会出现丢失精度的问题) case穿透的理解: 当条件表达式计算完成后,程序开始执⾏,如果结果为1,则执⾏case1的代码块1。

当代码块1执⾏完毕后,程序还会继续执⾏case2的代码块2,直⾄执⾏完所有case。

⼀般写程序时只有需要多选择结构时才会经常⽤到switch语句,如果是单/双选择结构,⼀般⽤if语句即可。

⽰例: ①使⽤switch语句实现⼀个简单的掷筛⼦⼩程序:package exercise;/*** @author刘⼩将* switch语句:多选择结构* ⼀个简单的掷⾊⼦⼩程序*/public class TestSwitch {public static void main(String[] args) {double b = Math.random();int e = 1+(int)(b*6);switch (e) { //switch()中默认是int型,或者⾃动转为int的类型(byte,short,char),也可以是枚举。

掌握C语言中的条件语句和循环结构

掌握C语言中的条件语句和循环结构

掌握C语言中的条件语句和循环结构C语言是一种广泛应用于程序设计和系统开发的编程语言,具有快速、高效、灵活等特点。

在C语言中,条件语句和循环结构是非常重要的两个概念,通过掌握它们,我们可以实现程序的逻辑判断和重复执行,从而为我们的编程带来了更大的灵活性和功能性。

本文将详细介绍C语言中的条件语句和循环结构,帮助读者全面理解和掌握。

一、条件语句条件语句是根据特定条件的真假来决定程序的执行路径。

在C语言中,常见的条件语句有if语句、if-else语句和switch语句。

1. if语句:if语句是根据判断条件是否为真来进行分支选择的结构。

它的一般形式是:```cif(条件表达式){// 条件为真时执行的代码块}```if语句的执行过程是首先判断条件表达式是否为真,若为真则执行花括号内的代码块,否则跳过不执行。

举个例子:```c#include <stdio.h>int main(){int num = 10;if(num > 0){printf("num是正数\n");}return 0;}```上述代码中,我们使用if语句判断变量num是否为正数,如果是,则输出"num是正数"。

2. if-else语句:if-else语句是在if语句的基础上增加了一个可选执行路径。

其一般形式如下:```cif(条件表达式){// 条件为真时执行的代码块}else{// 条件为假时执行的代码块}```执行过程和if语句类似,当条件为真时执行if语句后的代码块,当条件为假时执行else语句后的代码块。

举个例子:```c#include <stdio.h>int main(){int num = 10;if(num % 2 == 0){printf("num是偶数\n");}else{printf("num是奇数\n");}return 0;}```上述代码中,我们使用if-else语句判断变量num是否为偶数,根据判断结果输出相应的信息。

09_switch语句以及用switch语句和break语句构成的选择结构

09_switch语句以及用switch语句和break语句构成的选择结构

4.4.2 switch执行过程
switch语句的执行流程是:首先计算switch后 面圆括号中表达式的值,然后用其结果依次与各 个case的常量表达式相比较,若圆括号中表达式 的值与某个case后面的常量表达式的值相等,就 执行此case后面的语句,执行后遇break语句就退 出switch语句;若圆括号中表达式的值与所有 case后面的常量表达式的值都不相同,则执行 default后面的语句n+1,执行后退出switch语句, 退出后程序流程转向开关语句的下一个语句。
44switch语句以及用switch语句和break语句构成的选择结构44switch语句以及用switch语句和break语句构成的选择结构441switch语句通过前面的讨论我们知道if语句处理两个分支处理多个分支时需使用ifelseif结构但如果分支较多则嵌套的if语句层数就越多程序不但冗长而且理解也比较困难
(2)如果在case后面包含多条执行语句时,也不 需要加大括号,进入某个case后,会自动顺序执 行本case后面的所有执行语句。 (3)default总是放在最后,这时,default后不需要 break语句。并且,default部分也不是必须的,如 果没有这一部分,当switch后面圆括号中表达式 的值与所有case后面的常量表达式的值都不相等 时,则不执行任何一个分支直接退出switch语句。 此时,switch语句相当于一个空语句。例如,将 上面例子中switch语句中的default部分去掉,则 当输入的字符不是“A”、“B”、时,此switch语 句中的任何一条语句也不被执行。
说明: (1)switch、case、break、default均为C语言的保留 字。 (2)swich的表达式通常是一个整型或字符型变量,也 允许是枚举型变量,其结果为相应的整数、字符或枚 举常量。 (3)常量表达式又称为开关常数,必须是与表达式对 应一致的整数、字符或枚举常量。 (4)语句1至语句n,可以是简单语句,也可以是复合 语句。 (5)在关键字case和常量表达式之间一定要有空格。 ※重点提示:在switch语句中,default以及break是 可以有也可以没有的,且case语句标号后的语句也可 以省略不写。

C语言程序设计ppt课件-第3章-选择结构

C语言程序设计ppt课件-第3章-选择结构
1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。

C语言_条件判断、选择结构程序设计

C语言_条件判断、选择结构程序设计
a && b, a==b || x==y, !(a>b) && x>y
逻辑表达式中的运算对象可以是0和非 逻辑表达式中的运算对象可以是0和非 0,也可以是字符型、实型或指针型 ,也可以是字符型、
4 && 0 || 3.6,'A' && 'B' ,
逻辑表达式总结( ) 逻辑表达式总结(3)
在逻辑表达式的求解中, 在逻辑表达式的求解中,并不是所有 的逻辑运算符都被执行, 的逻辑运算符都被执行,有时只需执 行一部分运算就可以得出结果 a && b && c a || b || c 设m=1,n=1,a=1,b=2,c=3,d=4
33
#include <stdio.h> if-else结构 void main() 结构 程序举例 { double a,b,area; c4_3.c printf(“请输入矩形边长 和b:"); 请输入矩形边长a和 请输入矩形边长 scanf("%lf,%lf",&a,&b); 求矩形的 if (a>0&&b>0) 面积 { area=a*b; 用 两 个 if 语 句 代 printf("面积 面积=%f\n",area); 面积 替 if-else 语 句 , } 不好!! 不好!! if(a<=0||b<=0) printf("边长必须大于 边长必须大于0\n"); 边长必须大于 }
C语言 语言
—条件判断、选择结构程序设计 条件判断、 条件判断 韩 慧 hanhuie@
1
本次课程所讲内容

c语言中的switch用法

c语言中的switch用法

c语言中的switch用法C语言中的switch用法是程序设计中常用的一种结构,它使用一个表达式来选择多个执行路径中的一个。

通过它,我们可以根据不同的条件执行不同的操作。

在本文中,我将一步一步回答关于C语言中switch用法的问题。

1. switch语句的基本结构是什么?switch语句由switch关键字、一个表达式、若干个case语句和一个可选的default语句组成。

其基本结构如下所示:switch (expression) {case constant1:执行语句break;case constant2:执行语句break;...default:执行语句}2. switch语句的执行流程是怎样的?当程序执行到switch语句时,首先会计算表达式的值,然后将该值与case 语句中的常量进行比较,如果匹配成功,就执行相应的语句直到遇到break 语句或switch语句结束。

如果没有匹配成功的case语句,就会执行default语句(如果存在),或者直接跳过switch语句。

3. case语句中的常量可以是哪些类型?case语句中的常量可以是整数常量、字符常量、枚举常量或者常量表达式。

它们在不同的case语句中不能重复。

4. switch语句中的表达式可以是什么类型?switch语句中的表达式可以是整数类型(包括char、short、int和long),字符类型(char)或者枚举类型。

在C99标准中,它还可以是指针类型。

5. case语句中可以使用浮点数作为常量吗?在标准的C语言中,case语句中只能使用整数类型、字符类型或者枚举类型的常量。

不能使用浮点数。

6. 在case语句中使用break语句有什么作用?在switch语句中,break语句用来终止当前的case语句块,并跳转到switch语句块外面,从而避免执行其他case语句。

如果不使用break语句,程序会继续执行下一个case语句,直到遇到break语句或者switch 语句结束。

08《C语言程序设计》教案第三章程序的控制结构—选择结构switch

08《C语言程序设计》教案第三章程序的控制结构—选择结构switch

算法分析:学分用 n,收费用 x,编号用 nu‎ mber,学生的类别‎ 用 p。根据题意,分三种 情况‎ 考虑:
(1)本校全日制‎ :x=0
(2)本校夜大: n≤12,x=200
n>12, x=200+( n-12) *20
( 3)外校:
n≤ 12, x=600
n>12, x=600+( n-12) *60
switc‎h(n) { case 1: case 2: x=10; break‎;
… } 【例 4.7】从键盘输入‎ 一个星期(1~7),并显示该星‎期的英文名‎ 称。
#inclu‎de <stdio‎.h> main()

int week; scanf‎(″%d″,&week); switc‎h(week)
case„G‟: print‎f(“Good‎morni‎ng!\n”); defau‎lt: print‎f(“Bye_B‎ye!\n”);
}
}
运行下面程‎序时,输入数据为‎ “2,13,5<CR>”,则输出结果‎ 是[
]
main() { int a,b,c;
scanf‎(“%d,%d,%d”,&a,&b,&c);
A、3 B、2 C、4 D、不确定的值‎
执行以下程‎序的输出结‎ 果是[
]
main()
{ int k=4,a=3,b=2,c=1;
print‎f(“%d\n”,k<a?k:c<b?c:a);}
A、4 B、3
C、2
D、1
若运行下面‎ 程序时,给变量 a 输‎ 入15,则输出结果‎ 是[
]

c程序设计 if语句和switch语句实验小结

c程序设计 if语句和switch语句实验小结

c程序设计 if语句和switch语句实验小结文章标题:深入浅出:探索C程序设计中的if语句和switch语句在C程序设计中,if语句和switch语句是两种常用的控制流语句,它们在程序中起着至关重要的作用。

通过对这两种语句的深入理解和实验实践,我们可以更好地掌握它们的灵活运用,从而提高编程技能。

本文将从浅入深地探讨if语句和switch语句的使用方法和实验小结,为读者提供全面、深入的参考。

1. 对if语句和switch语句的初步理解在C程序设计中,if语句用于根据指定的条件执行相应的代码块,它的基本格式为:```cif (条件) {// 代码块}```而switch语句则用于根据不同的情况执行相应的代码块,它的基本格式为:```cswitch (表达式) {case 值1:// 代码块1break;case 值2:// 代码块2break;//...default:// 默认代码块}```2. 实验探究if语句和switch语句的基本用法我们通过一些简单的实验来深入理解if语句和switch语句的基本用法。

以if语句为例,我们可以设计一个简单的程序,在其中根据输入的数字判断奇偶性,并输出相应的提示信息。

而对于switch语句,我们可以设计一个程序,根据输入的数字来判断对应的星期几,并输出相应的信息。

通过这些实验,我们不仅可以熟悉if语句和switch语句的语法和运行逻辑,还可以加深对它们的理解和掌握。

3. if语句和switch语句的灵活运用除了基本的用法外,if语句和switch语句还可以进行一些灵活的运用。

我们可以嵌套使用多个if语句来处理多种情况,或者在switch语句中使用break语句来控制程序的流程。

我们还可以结合逻辑运算符和条件表达式来优化if语句的编写,或者使用default关键字来处理switch语句中的默认情况。

这些灵活的运用方式,可以使我们的程序更加高效、清晰和易于维护。

Java中的条件语句之if语句和switch语句

Java中的条件语句之if语句和switch语句

Java中的条件语句之if语句和switch语句Java中的条件语句主要用于根据特定条件执行不同的代码块。

在Java中,有两种主要的条件语句:if语句和switch语句。

1. if 语句:if语句用于根据一个布尔表达式的结果来执行不同的代码块。

以下是if语句的基本语法:if (condition) {// 当条件为真时执行的代码} else {// 当条件为假时执行的代码}if语句中的condition是一个布尔表达式,其结果为真或假。

如果condition为真,则执行if语句块中的代码;如果condition为假,则执行else 语句块中的代码。

2. switch 语句:switch语句用于根据一个变量的值来执行不同的代码块。

以下是switch语句的基本语法:switch (variable) {case value1:// 当variable等于value1时执行的代码break;case value2:// 当variable等于value2时执行的代码break;// 可以有多个case语句default:// 当variable的值不等于任何case值时执行的代码break;}switch语句中的variable是一个变量,可以是任何数据类型。

case语句指定了与variable的值匹配的值,当variable的值与某个case语句中的值匹配时,执行该case语句块中的代码。

如果没有任何case语句与variable的值匹配,则执行default语句块中的代码。

每个case语句的末尾必须有一个break 语句,以防止执行下一个case语句块中的代码。

选择结构程序设计实验原理

选择结构程序设计实验原理

选择结构程序设计实验原理选择结构程序设计是计算机科学中的一个重要概念,它指的是根据给定的条件,通过判断条件的真假来决定程序的执行路径。

本文将介绍选择结构程序设计的原理和应用。

选择结构程序设计是一种基本的程序设计方法,它允许程序根据不同的条件选择不同的执行路径。

在选择结构中,程序会根据条件的真假来决定执行哪一段代码。

一般来说,选择结构由if语句和switch语句实现。

if语句是最基本的选择结构,它根据给定的条件判断真假,并执行相应的代码块。

if语句的一般形式是:if (条件) {// 如果条件为真,执行这里的代码} else {// 如果条件为假,执行这里的代码}在if语句中,条件可以是一个布尔表达式,也可以是一个返回布尔值的函数。

当条件为真时,执行if代码块中的代码;当条件为假时,执行else代码块中的代码。

switch语句是一种多分支的选择结构,它根据给定的值选择相应的执行路径。

switch语句的一般形式是:switch (表达式) {case 值1:// 如果表达式的值等于值1,执行这里的代码break;case 值2:// 如果表达式的值等于值2,执行这里的代码break;case 值3:// 如果表达式的值等于值3,执行这里的代码break;default:// 如果表达式的值不等于任何一个值,执行这里的代码}在switch语句中,表达式的值会与每个case后面的值进行比较,如果相等,则执行相应的代码块;如果不相等,则继续匹配下一个case。

如果没有匹配的case,则执行default代码块中的代码。

选择结构程序设计可以用来解决各种问题,例如判断一个数是奇数还是偶数,根据用户输入的选项执行相应的操作,或者根据不同的条件选择不同的输出结果等。

除了if语句和switch语句,选择结构程序设计还可以通过嵌套的方式实现更复杂的判断逻辑。

例如,可以在if代码块中嵌套if语句,或者在switch代码块中嵌套if语句。

C语言学习-选择结构if语句、switch语句

C语言学习-选择结构if语句、switch语句

C语⾔学习-选择结构if语句、switch语句今天主要学习了,if语⾔和switch语句,下⾯直接进⼊正题。

C语⾔为我们提供了3种流程控制结构,分别为:顺序结构,选择结构,循环结构。

顺序结构:默认的流程结构。

按照书写顺序执⾏每⼀条语句。

选择结构:对给定的条件进⾏判断,根据不同的结果执⾏不同的代码断。

循环结构:对给定条件成⽴的情况下,反复执⾏某⼀代码断。

3种流程图如下:⼀、顺序结构1int main(){23 printf("hello world!\n");45 printf("I like iOS!\n");67return0;89 }以上程序的运⾏结果如下:⼆、选择结构C语⾔中选择结构的实现⽅式有两种:if语句和switch语句。

先来看下if语句的使⽤,⽽if语句的形式是有好多种的。

先来看看if语句最简单的形式if ( 条件 ){语句1;语句2;....}如果if右边⼩括号()中的条件成⽴,也就是为“真”时,就会执⾏第2~6⾏⼤括号{}中的语句;如果条件为假,就不执⾏⼤括号{}中的语句。

这⾥的if是关键字。

例如:1int main(){23int a = 7;45if ( a ){6 printf("条件a成⽴\n");7 printf("a的值为真");8 }910 }C语⾔规定所有⾮0值都为“真”,⽽a的值是7,因此第3⾏的条件是成⽴的,接着就会执⾏第5、6⾏代码。

输出结果如下:条件a成⽴a的值为真如果将a的值改为0,那么第3⾏的条件就不成⽴,就不会执⾏第5、6⾏代码语句嵌套if1int main(){23int a = 7;45if ( a > 0 ){67 printf("a的值⼤于0\n");89if ( a<9 ){1011 printf("a的值⼩于9");12 }13 }14 }第3⾏的a>0是成⽴的,因此会按顺序执⾏第4~11⼤括号中的代码。

C++语言程序设计 switch语句

C++语言程序设计  switch语句

else if(s>=60) cout<<"D\n";
else
cout<<"E\n";
12
【分析】
❖ 使用switch语句,当然最笨的办法是每一个分数一 个case分支,将需要101个分支,显然这种程序不 值得推荐。那么有没有简化的办法呢? 其实,任何好的算法都是对问题分析和提炼的结果。 ➢题目中60分以上都是每10分一个层次,60分以 下是一个层次。只要把每个层次的共性找到就 容易找到简化程序的办法了。 ➢以60~69为例。每个分数的十位数都是6,对 于该层次的成绩,整除10的结果都是6。同样对 于70~79、80~89、90~99都是一样。而60 分以下的成绩整除10的结果都小于6。
9
【注意】
❖ switch后跟的“表达式”允许为任何类型的表达 式,其数据类型和case后面的常量表达式的数据 类型一致。(通常是字符型或整型)
❖ 每一个case后的各常量表达式的值不允许重复, 否则会报错。
❖ 每一个case后允许有多条语句,可以不用花括号 “{}”括起来。
❖ case和default子句出现的先后顺序可以变动,不 会影响程序的执行结果。default子句也可以省略 不用。
C++语言程序设计 switch语句
条件运算符与条件表达式
对于下述表达式求值语句:
if (<表达式1>) <变量>=<表达式2>
else
<变量>=<表达式3>
可改写为:
<变量>=<表达式1>?<表达式2>:<表达式3>
条件运算符书写方式: ? : 是三目运算符

详解C语言中条件判断语句if和switch的用法

详解C语言中条件判断语句if和switch的用法

详解C语⾔中条件判断语句if和switch的⽤法if 语句⽤ if 语句可以构成分⽀结构,它根据给的条件进⾏判定,以决定执⾏哪个分⽀程序段。

C 语⾔的 if 语句有三种基本形式第⼀种形式:if(条件表达式){语句1;}if(条件表达式){语句1;}这种形式运⾏顺序为:当条件表达式为真,执⾏语句1,否则,直接跳过语句1,执⾏后⾯的语句。

例⼦1:BOOL result = YES;if(result){printf("result is true\n");}BOOL result = YES;if(result){printf("result is true\n");}输出结果为:result is true如果把 result 的值改为 NO,那么就什么都不输出了。

例⼦2:int a = 5;int b = 6;if(a >= b){printf("a⼤于b\n");}int a = 5;int b = 6;if(a >= b){printf("a⼤于b\n");}输出结果为:什么都不输出如果改成这样:if(a <= b){printf("a⼩于b\n");}if(a <= b){printf("a⼩于b\n");}那么输出结果为:a⼩于b。

第⼆种形式:if(条件表达式){语句1;}else{语句2;}if(条件表达式){语句1;}else{语句2;}这种结构的执⾏顺序为:当条件表达式为真时,执⾏语句1,否则执⾏语句2。

例⼦1:BOOL result= YES;if(result){printf("result 为真\n");}else{printf("result 为假\n");}BOOL result= YES;if(result){printf("result 为真\n");}else{printf("result 为假\n");}这⾥的两个输出语句绝对不会同时输出。

2第四章 条件运算符与条件表达式switch语句选择结构程序设计17页

2第四章 条件运算符与条件表达式switch语句选择结构程序设计17页

若“表达式2”与“表达式3”的数据类型不一致,则 系统自动地将其中的一个精度低的表达式转化为精 度较高的表达式的数据类型。如:x>0?5:1.5的结 果为实型数5.0或1.5。
说明:1.条件运算符的优先级高于赋值运算符,但低 于逻辑运算、关系运算和算术运算。 2.条件运算符具有自右向左的结合性。 如:max=a>(b>c? b: c)?a: b >c? b : c 相当于:max=a>(b>c? b: c )?a:(b>c? b : c)
switch语句 通常总是和 break语句联 合使用,使得 switch语句真 正起到多分支 结构的作用。
main() {int g ; printf("Enter a mark:"); scanf("%d",&g); printf("g=%d :",g); switch(g/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"); } }
第8讲
条件运算符与条件表达式 switch语句、选择结构程序设计
4.3 条件运算符和条件表达式
条件运算符: ? :
条件表达式的一般形式为:表达式1?表达式2:表达式3
条件表达式的求解过程:先求“表达式1”的值,当“表达式1” 的值为非零时,以“表达式2”的值作为整个条件表达式的值; 当“表达式1”的值为零时,以“表达式3”的值作为整个条件 表达式的值。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.4.2 switch语句体中的break语句
main() break语句 {int g ; 的功能是强制 printf("Enter a mark:"); 跳出switch语 scanf("%d",&g); 句体。 printf("g=%d :",g); switch语句 switch(g/10) {case 10: 通常总是和 case 9 : printf("A\n"); break ; break语句联 case 8 : printf("B\n"); break ; 合使用,使得 case 7 : printf("C\n"); break ; switch语句真 case 6 : printf("D\n"); break ; 正起到多分支 default : printf("E\n"); } 结构的作用。
例4.6 用switch语句改写例4.3
main() {int g ; printf("Enter a mark: "); scanf("%d",&g); printf("g=%d: ",g); switch (g/10) {case 10: case 9: printf("A\n"); case 8: printf("B\n"); case 7: printf("C\n"); case 6: printf("D\n"); default: printf("E\n"); } } 程序运行情况如下: Enter a mark:78<CR> g=78: C D E 程序在输出了与78分相 关的等级C之后,紧接着 又输出了与 78 分毫不相 关的等级D、E,这显然 不符合题意。 为了改变这种情况, switch语句常常需要与 break语句配合使用。
例4.5
编写程序,输入能代表一个日期的三个整数,计算该日 是该年的第几天。
main() {int y , m, d, dd=0; case printf("Enter yyyy/mm/dd:"); case scanf("%d/%d/%d", &y, &m, &d); case printf("%d/%d/%d", y, m, d); case switch (m-1) case {case 11: dd=dd+30;/*11月的天数*/ case case 10: dd=dd+31; /*10月的天数*/ case …… case 2: dd=dd+28; /*2月的天数*/ case 1: dd=dd+31; /*1月的天数*/ case 0: dd=dd+d; /*当月已过的天数*/ } if((m>2)&&(y%4==0&&y%100!=0||y%400==0)) dd=dd+1; /*闰年的2月有29天*/ printf(" %d\n",dd); }
闰年优化程序2
main() {int year, leap; printf("Please input the year:"); scanf("%d",&year); leap=(year%4==0&&year%100!=0)||(year%400==0); if (leap) printf("%d is a leap year.\n",year); else printf("%d is not a leap year.\n",year); } leap=year%4==0&&year%100!=0; leap= leap||(year%400==0);
例4.8 求一元二次方程的解
分析:随着方程中的变量 a,b,c的变化,该方程有 以下几种可能性: 1. a=0:不是二次方程。 2. b*b-4*a*c=0, 有两个相等实根。 3. b*b-4*a*c > 0, 有两个不相等的实根。 4. b*b-4*a*c < 0, 有两个共轭复根。
#include "math.h" main() {float a,b,c,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation "); if (fabs(a) <= 1E-6) /*判断一个实数a是否为零*/ { printf("is not quadratic\n"); exit(0); } else disc = b*b - 4*a*c; if (fabs(disc) <= 1E-6) /* disc ==0 */ printf("has two equal root: %8.4f",-b/(2*a)); -6) { x1 = (-b + sqrt(disc))/(2*a); x2 = (-b - sqrt(disc))/(2*a); printf("has two root:%8.4,%8.4f\n",x1,x2); } else { realpart = -b/(2*a); imagpart = sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }
例4.7 写一程序,从键盘上输入一个年号year (4位十进制整数),判断该年是否闰年。
分析:判断某年是否为闰年的条件是: 1)年号能被4整除但不能被100整除; 2)年号能被400整除。
main() {int year, leap; /*leap=0不是; leap=1是*/ printf("Please input the year:"); scanf("%d",&year); if (year % 4==0) if (year % 100 != 0) leap=1; else if (year%400==0) leap=1; else leap=0; else leap=0; if (leap==1) printf("%d is a leap year.\n", year); else printf("%d is not a leap year.\n", year); }
例4.7 闰年程序
闰年优化程序1
main() {int year, leap; printf("Please input the year:"); scanf("%d",&year); leap=0; if (year%4==0 && year%100!=0) leap=1; leap= leap|| (year%400==0); if (year%400==0) leap=1; if (leap) printf("%d is a leap year.\n", year); else printf("%d is not a leap year.\n", year); }
4.4 switch语句
使用switch语句实现多分支选择结构, 可以使程序的结构显得更加清晰。 执行过程: 1. switch语句的一般形式与执行过程
switch语句形式如下: switch (表达式) {case 常量表达式1: [语句1] case 常量表达式2: [语句2] : case 常量表达式n: [语句n] [default:语句n+1] } 方括号中的内容可以省略 先计算表达式的值, 表达式只能是 然后寻找与该值吻合 整型、字符型 case和常量表 的case标号,并执行 或枚举型 达式之间一定 该标号开始的所有语 要有空格 句,直到switch语句 多条语句可 以不必用{ } 体结束。如果没有与 括起来 该值相等的标号,则 default标号 从default标号后的语 也可以放在 句开始执行,直到 其它位置 switch语句体结束。
第8讲
条件运算符与条件表达式 switch语句、选择结构程序设计
4.3 条件运算符和条件表达式
条件运算符: ? : 条件表达式的一般形式为:表达式1?表达式2:表达式3 条件表达式的求解过程:先求“表达式1”的值,当“表达式1” 的值为非零时,以“表达式2”的值作为整个条件表达式的值; 当“表达式1”的值为零时,以“表达式3”的值作为整个条件 表达式的值。
9: dd=dd+30; 8: dd=dd+31; 7: dd=dd+31; 6: dd=dd+30; 5: dd=dd+31; 4: dd=dd+30; 3:程序运行情况如 dd=dd+31;
Enter yyyy/mm 2003/2/15 46 Enter yyyy/mm 2003/12/31 36
}
switch语句的几种变化形式
main() main() main() main() {int gg;;; {int g g ; {int {float printf("Enter a mark:"); printf("Enter aamark:"); printf("Enter a mark:"); printf("Enter scanf("%d",&g); mark:"); scanf("%d",&g); scanf("%d",&g); scanf("%f",&g); printf("g=%d :",g); printf("g=%d :",g); printf("g=%d :",g); printf("g=%5.1f :",g); switch(g/10) switch(g/10) switch(g/10) switch(g/10) switch((int)(g/10)) {case 10: break ; {case 10: {case10: {case case 910:printf("A\n"); break ;; case : 9: : printf("A\n"); break ; case9 9 :printf("A\n"); break ; case printf("A\n"); break default : : printf("B\n"); break ; ; ; printf("E\n"); break case 88: : printf("B\n"); break ; case8 case printf("B\n"); break case 8 :printf("C\n"); break ; ;; printf("B\n"); break case : : printf("C\n"); break case7 77 : printf("C\n"); break ; case case 7 :printf("D\n"); break ; ;; case : 6: :printf("C\n"); break ; case6 6 printf("D\n"); break case printf("D\n"); case 6 :: printf("E\n"); break ; printf("D\n"); break default :: printf("E\n"); default printf("E\n"); } }}default }} } }}
相关文档
最新文档