c语言中的选择结构

目录

1.if 语句

关于if和else的匹配问题

2.switch 语句

2.1 switch 语句的结构书写

2.2 switch 语句的break

2.3 case 与 default 有没有顺序区别呢?


1.if 语句

    在生活中我们经常面对选择,c语言同样也有相应的语句来处理选择,这便是 if 语句。if 语句中表达式为真,就执行 if 的代码块。

#include

int main()
{
	int n = 0;
	int a = 10;
	scanf("%d", &n);
	if (n > a)
	{
		printf("大于a\n");
	}
    return 0;
}

 在上述代码中,如果输入的 n 的值大于a,就执行if 语句的printf. 这很好理解。

接下来我们该如何让选择更加多样化呢?这时我们引入 else if  和  else  语句,让选择更加丰富。

#include

int main()
{
	int n = 0;
	int a = 10;
	scanf("%d", &n);
	if (n > a)
	{
		printf("大于a\n");
	}
	else if (n == a)
	{
		printf("等于a\n");
	}
	else
	{
		printf("小于a\n");
	}
	return 0;
}

要注意上述代码最多只会进去一个语句,也就是说如果条件都满足上述语句,只会进去最开始就符合条件的语句。

c语言中的选择结构_第1张图片

    当 n 输入的值为15时,它符合if 和 else if 语句时,它只会进去一个语句块,这便时最先符合的if  语句。

        当然我们实际写代码时一般是不会让if ,else if,else的表达式条件有重复出现的情况,毕竟这样就没啥意义用这些语句。如果我们确实有需要满足某个条件能做出两个及以上的选择的话,我们可以多次使用if 语句就可以了。下面让我们看看代码的实现情况吧。

c语言中的选择结构_第2张图片

多次使用if语句就可以实现你需要的能做出多种选择的效果了。

关于if和else的匹配问题

c语言中的选择结构_第3张图片

          当看到这样的代码时,我们该如何分析呢?这是我们要记住else 语句总是和离它最近的if 语句进行一 一匹配对应的。那么根据上述代码,我们可以看出else语句是与if(n == a) 进行匹配的。

2.switch 语句

       除了 if 语句之外,在某些情况下,我们也会使用到switch 语句,switch语句的特点就是比较简洁明了。让我们来看看switch 语句的代码吧。

#include

int main()
{
	int day = 0;
	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");
		break;
	}
	return 0;
}

2.1 switch 语句的结构书写

       首先我们要在switch的括号内输入表达式,但要注意必须使用的是整形或常量表达式,这是语法规定。

      接着我们就要写出case 与 default 语句,在此之前我们就要了解什么是case 和 default.

     case 后面跟着表达式的值,如果表达式满足case 后的值,那么程序就会进入到对应的case 内部,去执行case 所包含的代码块。

    default 就更好理解了,就是表达式的值和所有的case 都不能匹配的话,程序就会进入到default语句中,执行default 语句所包含的代码块。

    那么case 和 default 语句,我们可以形象地理解为一扇扇地大门,switch 语句地表达式的值就像一把钥匙,当钥匙能和那扇大门进行匹配的时候,我们就可以打开对应的大门。

2.2 switch 语句的break

       从上面的switch 代码中,我们不难发现有break 的存在,那break 又是什么意思呢?其实break 是让程序跳出switch 语句,让我们看看有break 和 没有break 的区别吧。

有break的情况

c语言中的选择结构_第4张图片

没有break 的情况

c语言中的选择结构_第5张图片

c语言中的选择结构_第6张图片

        从上面代码情况,我们可以看到当表达式的值满足其中一个case 情况下,如果没有break 的话,程序将会一直往下执行代码,直到遇到break 或者 整个switch 语句都执行完,程序才跳出switch语句。

2.3 case 与 default 有没有顺序区别呢?

答案是没有!

下面看看代码运行吧。

c语言中的选择结构_第7张图片

     为什么这么说呢?我们可以想象一下,我们拿着一把钥匙,是不是只能打开相应的东西呢?在switch 语句中也是一样的,当switch 满足某个case 条件就会进入到相应的case 里面去,如果都不满足,也没关系,我们有default 可以处理这些不满足的条件,也就是去执行default 的语句。

    但是我们一般习惯将default 语句放在所有的case 语句之后。

    感谢您的阅读,希望这些内容能帮到您。如果可以,能点个赞 ,给个关注吗?我会在本专栏上持续推出作品。

你可能感兴趣的:(初始c语言,学习)