周游C语言教程5 -条件语句
作者:互联网
周游C语言教程5 -条件语句
这是周游C语言的第五篇教程,你将在这篇文章里认识条件语句。
条件
条件就是判断语句是否成立,在C语言中,0表示不成立,就是逻辑中的假,非0则表示成立,就是逻辑中的真。对于一个条件判断语句,如果判断成立,那么这个表达式的值就是1,即为真,否则这个表达式的值就是0,即为假。比如a=2,b=3,那么表达式a>b的值就是0,因为他并不成立,而a<b的值就是1,这是成立的。
条件语句
C语言中可以使用if
和switch
两个条件语句来判断
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 if
和else
并不是必须的
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