C语言基础——判断与循环
——判断篇
目录
回顾:
上一篇章中,我们很正经的了解了C语言的表达式的相关内容,同时结合代码分析了各种类型的表达式的用法。其中在讲到判断表达式的时候说,这个类型的表达式在“判断与循环”部分会经常用到。没错,它来了,今天我们结合例子讲一下什么是判断,什么是循环,什么时候用。
一、判断篇
定义:不用官方概念了,根据名称我们也知道,判断就是判断条件是否成立。这个条件可以是一个表达式,也可以是一个变量。
我们知道,判断的结果只有两种,正确/失败,在计算机中对应的是真(1)/假(0),值得注意的是,常量/变量的值为0时表示条件的结果为假,值为1时表示判断的结果为真;
(一)if判断
首先我们了解最基础的判断if语句,先给出代码的格式:
if(判断条件)
{
执行的代码块
}
也就是说,只有判断的条件为真的时候,才会执行后面的花括号中的内容。值得注意的是一对花括号中的内容为一个小整体,顺序全部执行。
举例说明,判断数字的大小:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个整数:");
scanf("%d", &a);
if(a > 5)
{
printf("a > 5");
}
printf("game over");
return 0;
}
分析,输入一个数字a ,判断,当a>5成立的时候会执行输出语句显示a>5,同时打印“you win”,接着执行最后的“game over”;我们看一下执行结果:
如果条件不成立,就不会执行if后面的代码块,只打印game over,我们看一下执行结果:
-
(二)else if
有时候我们会进行多次判断,获取最佳的结果,这个时候我们就可以用else if语句,这个语句配合if使用,根据字面意思便可知道是:“否则的话,如果:”
依然举个例子,依然是判断数字的大小:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个整数:");
scanf("%d", &a);
if(a > 5)
{
printf("a > 5");
}
else if(a > 3)
{
printf("3 < a <=5");
}
else
{
printf("a <= 3");
}
return 0;
}
分析代码,当输入的数字大于5时打印“a>5”,不然的话判断“a>3”,成立的话打印“3<a<=5”;如果都不成立便打印“a<3”;以此获取输入的数字的范围。我们看一下代码的执行结果:
首先是a > 5:
接着是3<a<=5:
最后是a <= 3:
-
(三)Switch、break语句
switch语句也可以进行多分支判断
举例如下:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个整数:");
scanf("%d", &a);
switch(a)
{
case 1:
{
printf("a==1");
}
case 2:
{
printf("a==2");
}
default:
{
printf("a为其它数字");
}
}
return 0;
}
当a==1成立时打印a==1,a==2成立时打印a==2,否则打印a为其它数字。结果真的是这样的吗?我们执行一下:
可以看到我们输入5的时候结果是没有问题的,我们尝试输入2:
我们发现它打印了a==2 与 a为其他数字,好像有问题,再尝试打印1:
我们发现它打印了所有的语句,好像不太对,为什么呢?
原来是因为switch会遍历所有的条件,当成立的时候便会从这个代码块开始一直执行下去,怎么解决这个问题呢?我们用“break”语句,当程序运行到break时便会跳出本次判断,执行后面的内容,我们修改代码为:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个整数:");
scanf("%d", &a);
switch(a)
{
case 1:
{
printf("a==1");
break;
}
case 2:
{
printf("a==2");
break;
}
default:
{
printf("a为其它数字");
break;
}
}
return 0;
}
我们看一下执行结果:
没问题,有兴趣的可以执行一下其它的可能
-
(四)If嵌套
什么是if嵌套?就是在if的代码块中嵌套if判断,举例说明:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个整数:");
scanf("%d", &a);
if(a > 5)
{
if(a < 10)
{
printf("5 < a < 10");
}
else{
printf("a > 10");
}
}
return 0;
}
只有当5<a<10 时执行输出“5<a<10”:
我们看一下运行结果:
没问题,我们再尝试输入11:
好的没问题
(五)Continue语句
Continue语句类似于break语句,作用都是跳出本次执行,不一样的时,break语句执行后面的代码,continue继续重新执行本次代码,但是continue语句经常放在循环中,因此我们在循环中讲continue。
二、循环篇:
下次介绍