目录
if语句·其一
奇数的判定
if语句·其二
对奇数·偶数的判断
if语句的结构图
专题· 语法结构
结构图的阅读方法
结构图示例
相等运算符
关系运算符
嵌套的if语句
if语句·其一
大家的一天都会怎么度过呢?我想应该不会是被设计好的程序那样循规蹈矩,我们都有自己的判断,根据判断来决定自己的选择。例如,我打算明天出去购物,但是明天天气预报有雨,那么我们就必须带伞。
我们先用下面一段程序来引出if语句:
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if(no % 5)
{
puts("输入的整数不能被5整除");
//TODO
}
return 0;
}
if(表达式)语句这样的语句称为if语句。
if语句判断表达式的值,若结果不为0,则执行相应的语句。
括号内对条件行判断的表达式称为控制表达式,no/5的结果不为0时判断结果为1,反之为0,则执行对应的语句。
对于判断结果0/1稍后我们会讲到。
奇数的判定
只需要改动表达式即可实现对奇数的判断,那么该整数位偶数我们想要输出“该整数为偶数”再怎么办呢?
if语句·其二
对奇数·偶数的判断
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if(no % 2)
{
puts("该整数为奇数");
//TODO
}
else
{
puts("该整数为偶数");
}
return 0;
}
本程序使用的是下面这中模式:
| if(表达式)语句1 else 语句2
当表达式的值不为0时执行语句1,当表达式的值为0时执行语句2,我们用下面的图片来解释:
注意
如果只有当某条件成立时才进行处理,则使用不加else的if语句;而如果是根据某条件的成立与否来进行不同的处理,则使用带else的if语句。
if语句的结构图
目前为止,我们已经学习了两种if语句,将两种if语句合起来的结构图如下:
如果不满足上满的条件语句就会发生错误,比如下面两个错误:
| if vx % vy puts(“vx不能被vy整除”); //表达式缺少括号
| if(vx / vy)else d //缺少最开始的语句
专题· 语法结构
使用if语句,无论是我们在阅读还是程序在计算时都要按照一定的顺序。
结构图的阅读方法
阅读结构图时要按照箭头的走向理解,从左边开始到右边结束,遇到分支点时,根据条件的判断选择分支继续理解。
结构图示例
A:有两条路径,分别是从头到尾和经过分支点,表示0或1个语句。
B:有任意的路径,既可以从头到尾,也可以返回分支语句再次循环上一步,一直这样反复循环。表示0以上个语句。
C:与A相同,表示0或1个语句。
D:既可以经过语句到结束,也可以从分支点再次经过语句,任意循环,表示1个以上任意个语句。
相等运算符
我们用一段代码来引出
#include<stdio.h>
int main()
{
int n1, n2;
puts("请输入两个整数:");
printf("整数n1:"); scanf("%d", &n1);
printf("整数n2: "); scanf("%d", &n2);
if(n1 == n2)
{
puts("这两个整数相等");//这是语句1,相等则结果为1,就执行语句1.
}
else
{
puts("这两个整数不相等"); //这是语句2,不相等结果为0,就执行语句2。
} //ps:千万不要把语句的顺序搞反,这样对应的结果也会相反,这是
初学者的我没仔细看喜欢犯的错误。
return 0;
}
这是第一次出现“==”运算符,会对左右两边操作数进行判断,若他们相等则结果为1,反之,为0;
与==运算符相反,用来判断两个操作数不想的的运算符是“!=”运算符。
这两种运算符统称为相等运算符。
==运算符 a == b 如果相等则为1,不等则为0. |
!=运算符 a != b 如果不等则为1,相等则为0 |
注意:
| ==和!=是一个运算符,中间不能有空格!
关系运算符
第一操作数>第二操作数,若是大于则结果为1,反之为0;
对于<运算符也是一样;
这样比较两个操作数大小的运算符我们称之为关系运算符。
当然还有“<=”和“>=”,对于结果的判断和上面并无差别,但要记得等号在右边且不能有空格。
嵌套的if语句
所谓嵌套,就像俄罗斯套娃,层层环扣,我们在读代码时可以相剥洋葱那样从外层开始,这样更方便于我们的理解。
我用下面的部分代码来表示:
大家看到一列列不同颜色和亮度的竖线了吗?从左往右就是从最外层到最里层的一个递进,可以理解为从一个大的循环到一个一个小的循环。
我们接下来编写一段代码
#include<stdio.h>
int main()
{
int no;
puts("请输入1个整数:");
printf("整数no:"); scanf("%d", &no);
if(no > 0)
{
if(no % 2 == 0)
{
puts("该整数为偶数");
}
else
{
puts("该整数为奇数");
}
}
else
{
puts("您输入的不是正数。\n\a");
} //这里的else语句不要放在第二个if语句内,它属于第一个if
语句
return 0;
}
由于咱的学习时间有限,今天我们先学习到这里,下章节我们将会结束if循环语句的学习。并且尝试着根据生活中的实际问题来用代码解决!
希望我们能共同进步,学习更多的知识,也欢迎您在评论区分享你的看法。