第六章 选择结构程序设计

本文详细介绍了C/C++中选择结构的使用,包括if语句的基本形式、if...else和else if的用法,深入探讨了switch语句的执行流程和多路开关模式,同时对比了if...else与switch在语法和效率上的差异。通过对各种选择结构的实例分析,帮助读者更好地理解和应用这些控制流语句。
摘要由CSDN通过智能技术生成

目录

一、if 语句

二、if 语句的基本形式

1、if 语句形式

2、if...else 语句形式

3、else if 语句形式

三、if 的嵌套形式

四、条件运算符

五、switch 语句

1、switch 语句的基本形式

2、多路开关模式的 switch 语句

六、if...else 语句和 switch 语句的区别

1、语法比较

2、效率比较

一、if 语句

if 语句通过判断不同条件,决定是否进行操作。

二、if 语句的基本形式

1、if 语句形式

if 语句的一般形式:if(表达式)     语句

其语句的执行框图

if 后面括号中的表达式就是要判断的条件,后面的语句部分则是对应的操作。如果 if 判断括号中的表达式为真,就执行后面语句的操作;如果为假值,那么不会执行后面的语句部分。例如:

if(iNum)printf("The truevalue");

代码中判断变量iNum的值,如果iNum为真值,则执行后面的输入语句;如果变量的值为假,则不执行后面的语句。

if 语句的括号中,也可以判断一个表达式的值是否为真,例如:

if(iSignal==1)printf("the Signal Light is %d:",iSignal);

这行代码的含义是:判断变量 iSignal==1 的表达式 ,如果条件成立,那么判断的结果是真,则执行后面的输出语句;如果条件不成立,那么结果为假值,则不执行后面的输出语句。

如果 if 后面有两条语句,可以使用大括号,使之成为语句块。

if(iSignal==1)
{
    printf("the Signal Light is %d:\n",iSignal);
    printf("Cars can run");
}

使用 if 语句模拟信号灯 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int iSignal;						/*定义变量表示信号灯的状态*/
	printf("the Red Light is 0,the Green Light is 1\n");			/*输出提示信息*/
	scanf("%d", &iSignal);											/*输入iSignal变量*/

	if (iSignal == 1)												/*使用 if 语句进行判断*/
	{
		printf("the Light is green,cars can run\n");				/*判断结构为真时输出*/
	}
	if (iSignal == 0)													/*使用 if 语句进行判断*/
	{
		printf("the Light is red,cars can't run\n");				/*判断结果为真时输出*/
	}
	return 0;
}

2、if...else 语句形式

除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另一段代码,在c语言中利用 else 语句来完成。一般形式如下:

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

if(value)
{
    printf("the value is true");
}
else
{
    printf("the value is false");
}

 一个 else 语句必须跟在一个 if 语句的后面。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int iSignal;							/*定义变量表示信号灯的状态*/
	printf("the Red Light is 0,\nthe Green Light is 1,\nthe Yellow Light is other number\n");		/*输出提示信息*/
	scanf("%d", &iSignal);						/*输入iSignal变量*/

	if (iSignal == 1)											/*当信号灯为绿灯时*/
	{
		printf("the Light is green, cars can run\n");			/*判断结果为真时输出*/
	}
	if (iSignal == 0)											/*当信号灯为红灯时*/
	{
		printf("the Light is red, cars can'trun\n");			/*判断结果为真时输出*/
	}
	else                                                         /*当信号灯为黄灯时*/
	{														
		printf("the Light is yellow, cars are ready\n");
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半边山的海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值