今天我们来讲点关于if的事
if,都知道,”如果”的意思,C语言中也是这个意思,后面接着需要满足的条件,条件需要打上括号,满足条件后做的事情要打上大括号
给个小例子,求出两个数之间最大的数:
include
int main(){
int a,b,max; //max用来存储最大的数字
printf(“请输入两个数字:”);
scanf(“%d%d”,&a,&b);
if(a>=b){ //如果a大于b
max=a; //则最大的数是a
} if(b>a){
max=b;
}
printf(“最大的数为:%d\n”,max); //把max输出
return 0;
}
测试结果如下:
Press any key to continue的意思就是按任意键继续,是方便人们观察加上的
其实如果当 if 里语句只有一条语句时是不用大括号的,但是还是建议写上
就像这样:
if (a>=b)
max=a
虽然上面的程序求出了两个数中最大的数字,但是,还有一个东西叫 else ,它是与 if 连着用的,意思就是如果不满足上面所以的 if 条件,那么就执行 else 里的语句( 同样打上大括号 )
所以上面的例子,我们可以改成这样:
include
int main(){
int a,b,max;
printf(“请输入两个数字:”);
scanf(“%d%d”,&a,&b);
if(a>=b)
max=a;
else //每一个else后面都不加条件
max=b;
printf(“最大的数为:%d\n”,max);
return 0;
}
OK,我们了解 else 了,但是我们还可以优化一下,达到同样的效果
我们可以去掉变量max,直接输出 a 或 b,因为 if 和 else 里只能执行一个
include
int main(){
int a,b;
printf(“请输入两个数字:”);
scanf(“%d%d”,&a,&b);
if(a>=b)
printf(“最大的数为:%d\n”,a); //直接输出
else
printf(“最大的数为:%d\n”,b);
return 0;
}
那问题来了,如果我们有很多条件需要判断呢?
虽然拿 if 可以写,但是比较麻烦
这时,else if( ) 就登场了,它与 else 不同的就是它后面可以加条件,就是不满足上面的条件,但满足括号里的条件就执行大括号里的命令
给个例子,让用户输入分数,0-60为不及格,61-70为及格,71-80为中等,81-90为良好,91-100为优秀
源码如下:
include
int main(){
int score;
printf(“请输入分数:”);
scanf(“%d”,&score);
printf(“你的档次是:”);
if(score>=91)
printf(“优秀”);
else if(score>=81)
printf(“良好”);
else if(score>=71)
printf(“中等”);
else if(score>=61)
printf(“及格”);
else
printf(“不及格”);
printf(“\n”);
return 0;
}
这样写条理会比较清晰一点,但是如果要是求三个数的最大数,还是非常的麻烦
这时就会用到我们的逻辑运算符:&&,|| 与!
先说一下比较专业的解释,可以适当咀嚼一下:
“&&”含义为两个条件同时为真则结果为真,否则结果为假
” || “含义为两个条件同时为假则结果为假,否则结果为真
” ! “意为取反
常规介绍:
“&&”其实就是两边条件都满足时才执行 if 里的东西
” || “就是如果两边条件有一个符号,那就执行 if 里的语句
” ! “就是如果不符合这个条件,就执行
” || ” 的例子不太好找,如果知道好例子的就在评论区里说一声,谢谢可爱的小伙伴呀
举一个”&&”的例子吧( 求三个数中的最大数 ):
include
int main() {
int a,b,c;
printf(“请输入三个数字:”);
scanf(“%d%d%d”,&a,&b,&c);
printf(“最大的数字是:”);
if(a>=b&&a>=c) //如果a大于b,且a大于c时
printf(“%d”,a);
else if(b>=a&&b>=c)
printf(“%d”,b);
else
printf(“%d”,c);
printf(“\n”);
return 0;
}
代码也不长,完成了我们期望的主要任务
下面再举一个” ! “的例子(输入非零数字):
include
int main() {
int a;
printf(“请输入一个非零数字:”);
scanf(“%d”,&a);
if(a!=0) //一般!=意为不等于
printf(“您输入的是非零数字”);
else
printf(“您输入的是0,请重试”);
printf(“\n”);
return 0;
}
结合这些例子,在看看上面的知识点,就基本可以理解了
在说最后一点,”等于”的表达在C语言里可不是=
“=”为赋值符号,是把”=”右边的值赋给左边的变量
比如:a = 5 ; 这句话是将 5 赋值于 a,不要读 a 等于 5
那等于呢?等于是这个:”==”,两个等于号,经常用在 if 里
比如上面的非零数字可以改写一下,改写为这样:
include
int main() {
int a;
printf(“请输入一个非零数字:”);
scanf(“%d”,&a);
if(a==0) //如果a为0时
printf(“您输入的是0,请重试”);
else
printf(“您输入的是非零数字”);
printf(“\n”);
return 0;
}
结果一样,但是一般我们会用到!这个符号,为了装个B
等于与赋值一定要区别开,这令很多新手烦恼,他们会弄不懂这样的式子:
x = x + 1 ;
这其实就是把 x 加上1,然后赋值给 x 的操作,结果就是 x 比原来大了1
新手一定要理解透彻!!!否则以后会吃大亏的!
行了,今天的课也差不多了,总结一下:
if一般语法:
if ( 条件 ){
执行语句 ;
}
if – else一般语法:
if ( 条件 ){
执行语句 ;
}
else{
执行语句 ;
}
if – else if – else一般语法:
if ( 条件 ){
执行语句 ;
}else if ( 条件 ){
执行语句 ;
}else{
执行语句 ;
}
&&表示且,||表示或,!表示非
==为等于,=为赋值
OK,今天的讲解就到这里了
如果觉得讲的不错的话,点个赞,三个连吧
希望大家喜欢
下面给出上一章题的答案:
源码如下:
include
int main() {
int a,b;
printf(“请输入长方形的长宽:”);
scanf(“%d%d”,&a,&b);
printf(“长方形的周长是:%d,面积是:%d\n”,2a+2b,a*b);
return 0;
}
当然,今天也有题哦:
要求用户输入自己的年龄( age )和分数( score )
当年龄大于18且分数高于60时,输出”你可以使用该软件”
当年龄大于18但分数低于60时,输出”你的分数太低了”
当分数高于60但年龄不满18时,输出”你太小了,不能使用”
其他( 年龄为负数或100以上,分数为负数或100以上 ),输出”输入有误”
发表评论