c语言中if,switch,for,while相关运用

本文详细介绍了编程中的选择结构,包括单分支、双分支和多分支选择,重点讲解了if、switch语句的使用,以及break和continue关键字的作用。随后探讨了循环结构,如for、while和do-while,并通过ATM取款示例展示了循环嵌套的应用。
摘要由CSDN通过智能技术生成

1.选择结构:又称分支结构,是根据某个或某些条件,从若干个操作中选择某个操作 执行的一种控制结构。 选择结构分为以下三种: (1)单分支选择结构 (2) 双分支选择结构 (3)多分支选择结构.

2.if

if (条件表达式 1) { 语句块 1; }

else if (条件表达式 2) { 语句块 2; }

else if (条件表达式 n) { 语句块 n; }

else { 语句块 n+1; }

3.switch

switch(表达式){ case 常量值 1: 语句块 1;break;

case 常量值 2: 语句块 2;break;

case 常量值 n: 语句块 n; break;

[default: 语句块 n+1;]

(1)如果常量表达式的量与所有 case 语句的常量都不相符,就执行 default 语句中的程序。

(2)default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么在 switch 中就什么都不执行。接着执行后续代码。

(3)只能针对基本数据类型中的整型类型使用 switch,这些类型包括 int、char 等。对 于其他类型,则必须使用 if 语句。

(4)switch()的参数类型不能为浮点数,字符串。(必须是整型类型)。

(5) 标签必须是常量表达式(constantExpression),如 42 或者'4'+20。

(6)case 标签必须是惟一常量;也就是说,不允许两个 case 具有相同的常量值。

4.break和 continue 关键字

break:一旦执行,就结束当前循环结构

continue:一旦执行,就结束当次循环结构

5.分支结构嵌套

例:出票系统:根据淡旺季的月份和年龄,打印票价。要求,月份和年龄从键盘获取 输入

旺季: 成人(18-60):60         儿童(< 18):半价         老人(> 60):1/3

淡季: 成人 : 40         其他 : 20

	int a,b;
	printf("请输入月份和年龄");
	scanf_s("%d%d", &a,&b);//a为月份,b为年龄
	if (a>=4&&a<=10)
	{
		if(b<=18&&b>=60)
		{ printf("60$"); }
		else if(b<18)
		{ printf("30$"); }
		else
		{printf("20$");}
	}
	else
	{
		if(b <= 18 && b >= 60)
		{ printf("40$"); }
		else
		{printf("20$");}
    }

6.循环结构:循环语句具有在某些条件满足的情况下,反复执行特定代码的功能。循环结构四要素:循环变量初始化 、循环条件 、循环体 、循环变量迭代。

7.for

for (①初始化部分; ②循环条件部分; ④迭代部分){ ③循环体部分; }

(1)for(;;)中的两个;不能多也不能少

(2)初始化部分,用于初始化循环变量,只执行一次。可以声明多个变量,但必 须是同一个类型,用逗号分隔

(3) ②循环条件部分,只要为 true ,就会不断执行循环体;当值为 false 时,退出循环

(4) ④迭代部分,每轮循环结束后执行,使得循环变量发生变化。可以有多个变量更新,用逗号分隔

8.while

①初始化部分

while(②循环条件部分){ ③循环体部分; ④迭代部分; }

(1) while(循环条件部分)中循环条件为非零值,表示 true、真;为零值,表示 false、假。

(2)注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。

(3) for 循环和 while 循环可以相互转换。二者没有性能上的差别。实际开发中,根据具体结构的情况,选择哪个格式更合适、美观。

(4)for 循环与 while 循环的区别:初始化条件部分的作用域不同。

9.do  while

①初始化部分;

do{ ③循环体部分 ④迭代部分 }

while(②循环条件部分);

(1)do{}while();最后有一个分号

(2)do-while 结构的循环体语句是至少会执行一次,这个和 for 和 while 是不一样的

(3)循环的三个结构 for、while、do-while 三者是可以相互转换的

10.ATM取款问题,声明变量 balance 并初始化为 0,用以表示银行账户的余额,下面通过 ATM 机程序实现存款,取款等功能。

double ban = 0;
int opnum;
double add, sub;
_Bool esc = 0;

do
{
	printf("==========ATM=========\n");
	printf("\t1.存款\n\t2.取款\n\t3.显示余额\n\t4.退出\n");
	scanf_s("%d", &opnum);
	switch (opnum)
	{
	case 1:
		printf("输入存款数:\n");
		scanf_s("%lf", &add);
		ban += add;
		break;

	case 2:
		printf("输入取款数:\n");
		scanf_s("%lf", &sub);
		if (sub <= ban)
		{
			ban = ban - sub;
		}
		else
		{
			printf("余额不足\n");
		}
		break;
	case 3:
		printf("款数=:%.2lf\n", ban);
		break;

	case 4:
		esc = 1;
		break;
	}
	if (esc)
	{
		break;
	}

} while (1);

11.循环嵌套

是指一个循环结构 A 的循环体是另一个循环结构 B。比如,for 循环里面还有一个 for 循环,就是嵌套循环。其中,for ,while ,do-while 均可以作为外层循环或内层循环。

for(初始化语句①; 循环条件语句②; 迭代语句⑦)

{      for(初始化语句③; 循环条件语句④; 迭代语句⑥) { 循环体语句⑤; }      }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值