c语言入门:[8]选择结构if语句介绍之1
如果想让我们的程序能够智能地判断一些条件那就需要用到选择语句,这节我们介绍if语句。
if这个词在英语里是如果的意思,在c语言里你也可以把它当成如果。
我们来看下面的内容描述了这样的情况:如果你的会员卡号是6开头的那你的卡是金卡可以享受9折优惠
1>定义5位的会员卡号
2>从键盘输入会员卡号
3>如果会员卡的第一位是6输出黄金会员你好,你可以享受9折优惠
下面我们用c语言来实现上面的问题
1>定义5个char类型的变量,如果这样定义
char v1;
char v2;
char v3;
char v4;
char v5;
实在是太麻烦了,可以有一个简便的写法,写成
char v1,v2,v3,v4,v5;
2>
printf("请输入5位会员卡号:");
scanf("%c%c%c%c%c",&v1,&v2,&v3,&v4,&v5);
3>
if(v1=='6')
{
printf("贵宾你好,你可以享受9折优惠");
}
针对第3>条讲两个内容
一:if语句的条件
if后面的小括号里是if语句的条件,如果条件是真的则执行大括号里的代码,如果条件是假 的则大括号里的代码不执行。
if小括号里的条件表达式最后的运算结果为真或假 在c语言里默认用1表示真用0表示假
if(1)
{
printf("执行了if里的语句");
}
上面的代码运行后有输出,如果把1改成0则没有输出,另外c语言认为除了0都当成真,所以你把1改成10或者'a'或者3.14都会有输出,即非零都为真,零为假
我们在if的小括号里直接写1或者0并没有多少实际意义,大多数情况下我们都放关系运算,关系运算的结果就是真或者假,什么是关系运算哪?我们先学习最容易学的
大于 用>表示
小于 用<表示
大于等于用>=表示
小于等于用<=表示
相等用==表示 注意是两个=连着写,中间不能有空格
不等用!=表示
我们之前学过的算术运算符有运算结果像1+1的运算结果为2
那我们今天学习的关系运算符也有运算结果
1>3的运算结果为0
1==1的运算结果为1
10>90的运算结果为0
你懂了吗
我们总结一下之前学过的运算符的运算顺序
混合运算时应先算算数运算 + - * /
后算关系运算 > < >= <= ==
最后算赋值运算=
举例 3==2+1 先算2+1得出结果3 再算3==3 结果为1
二:if语句的作用范围
大括号里的内容是if语句的作用范围,。大括号也可以不写,那么if语句的作用范围就是第一个分号请看下面的例子
if(条件)
语句1;//这条语句受到if的控制
语句2;//这条语句不受if控制
if(条件);//if语句的作用范围为空
语句1;//这条语句不受if控制
建议大家以后在写程序的时候为了阅读方便即使if只控制一条语句也要加上大括号,就是大括号尽量不要省略。
现在来分析我们的例题
对于 if(v1=='6')
如果v1变量里的值为字符6 则v1=='6' 的结果为1 if语句条件为真就会执行那条输出语句
如果v1变量里的值不为字符6 则v1=='6' 的结果为0 if语句条件为假就不会执行那条输出语句
注意字符'6'可跟整数6不是一回事 如果你写成了 v1==6 那即使卡号的第一位是字符'6'这个运算的结果也为0,字符'6'当成整数来看应该是多少你可以查下我之前数据类型那节贴出的asc码图
完整的程序如下
main()
{
char v1,v2,v3,v4,v5;
printf("请输入5位会员卡号:");
scanf("%c%c%c%c%c",&v1,&v2,&v3,&v4,&v5);
if(v1=='6')
{
printf("贵宾你好,你可以享受9折优惠
");
}
}