其他分享
首页 > 其他分享> > 周游C语言教程5 -条件语句

周游C语言教程5 -条件语句

作者:互联网

周游C语言教程5 -条件语句

这是周游C语言的第五篇教程,你将在这篇文章里认识条件语句。

条件

条件就是判断语句是否成立,在C语言中,0表示不成立,就是逻辑中的假,非0则表示成立,就是逻辑中的真。对于一个条件判断语句,如果判断成立,那么这个表达式的值就是1,即为真,否则这个表达式的值就是0,即为假。比如a=2,b=3,那么表达式a>b的值就是0,因为他并不成立,而a<b的值就是1,这是成立的。

条件语句

C语言中可以使用ifswitch两个条件语句来判断

if

if语句的结构如下

if(表达式1)
{
	执行代码1;
}
else if(表达式2)
{
	执行代码2;
}
else if(表达式3)
{
	执行代码3;
}
else if(...)
{
	...;
}
else
{
	执行代码n;
}

if的执行逻辑是,先判断if中的表达式是否成立,如果成立就执行代码1,然后跳过其他代码。如果if中的表达式不成立,则跳到下一个else if()中去判断表达式是否成立,如果成立就执行对应的代码块,如果一直不成立就一直会执行else中的代码。

if语句中每个代码块都是平行的,满足哪个条件就执行哪个,一旦有一个条件满足,其他表达式就不再判断了。如果表达式1成立,即使表达式2再次成立,代码块2也不会被执行。当所有的表达式都不满足,那么就会执行else中的语句。

其中else ifelse并不是必须的

if(表达式1)
{
	执行代码1;
}
if(表达式1)
{
	执行代码1;
}
else
{
	执行代码2;
}
if(表达式1)
{
	执行代码1;
}
else if(表达式2)
{
	执行代码2;
}

以上几种写法都是允许的。

#include <stdio.h>

int main()
{
    int a = 1;
    int b = 2;
    if (a == b)
    {
        printf("a等于b");
    }
    else if (a > b)
    {
        printf("a大于b");
    }
    else
    {
        printf("a小于b");
    }
}

switch

switch 的本质跳转。他的结构如下

switch(整型变量)
{
	case 常量1:
	代码块1;
	break;
	case 常量2:
	代码块2;
	break;
	default:
	代码块n
	break;
}

程序会自动从case中查找和整型变量相等的值,然后跳转到这条语句处顺序执行代码,break的意思是跳出当前程序段,也就是跳出switch。如果列出的所有case中都没有和整型匹配的值,那么就会跳转到default中的。

注意,switch中必须是整型;case后面必须跟着常量,既固定值;default可以省略,由于swich本质是跳转,所以他会一直执行代码,直到碰到break;

switch(整型变量)
{
	case 常量1:
	代码块1;
	case 常量2:
	代码块2;
	default:
	代码块n
	break;
}

上述代码,如果整型变量等于常量1,那么他会跳转到代码块1,然后一直顺序向下执行,由于没有碰到break;他会将代码块2和代码块n也执行。

#include <stdio.h>

int main()
{
	int a = 1;
	switch (a)
	{
	case 1:
		printf("1");
		break;
	case 2:
		printf("2");
		break;
	case 3:
		printf("3");
		break;
	case 4:
		printf("4");
		break;
	default:
		printf("其他数字");
		break;
	}
}

if和switch的区别

swich只能用来判断某个变量的值为多少,其必须为整型,但由于其本质是跳转,所以每条语句都是相等的,不会出现先判断是不是等于常量1,然后再去判断是不是等于常量2的情况,即使case足够多,也等于只会进行一次判断。

if可以适用于任何表达式,他会将if中的所有表达式都先运算一遍,判断表示式的值是否为真,如果不符合再去判断下一个if,也就是说,如果第5个if中的表达式才满足条件,那么前4个if中的表达式同样会被计算。

#include <stdio.h>

int main()
{
	int a = 4;
	if (a-- == 0)
	{
		printf("a = 0");
	}
	else if(a-- == 0)
	{
		printf("a = 1");
	}
	else if (a-- == 0)
	{
		printf("a = 2");
	}
	else if (a-- == 0)
	{
		printf("a = 3");
	}
	else if (a-- == 0)
	{
		printf("a = 4");
	}
}

这里我们用到之前学过自减,a–会先返回自己当前的值然后再自减。最后运行可以看到输出a = 4

标签:case,周游,代码,教程,else,break,printf,C语言,表达式
来源: https://blog.csdn.net/u014723040/article/details/122754344