在遇到某些问题时,通过简单的顺序语句无法实现,这时候就需要用到分支与循环语句来解决文题。今天就讲讲分支结构中的if语句。身为一个网瘾少年,经常碰见打游戏抽卡的问题,其中能不能抽卡就可以用if语句进行判断
if...(else if)...else...
if...else...语句是一个简单的判断语句,其最基本的形式为:
if (判断条件)
语句1;
else
语句2;
当if后面括号中的语句判断为真,则执行语句1,否则执行语句2。通过流程图可以更直观的感受。
通过这样一个简单的判断语句,我们就可以对游戏中你能不能进行抽卡进行判定。在游戏中,如果你有足够的资源就可以抽卡,如果没有就不能。
用a表示你的资源数量,假设180可以抽一次卡,用if...else...来实现应该是这样的:
if (a >= 180)
printf("可以抽卡\n");
else
printf("资源不足,是否充值\n");
当然我们知道游戏里面不止可以一次一次抽,还可以直接十连抽,这当然也要进行判断,这就涉及到多重判断, if...else if...else... 语句,这个语句可以进行多个条件的判断,这里以两个条件为例,其基本形式是这样的:
if (判断条件1)
语句1;
else if (判断条件2)
语句2;
else
语句3;
它是按顺序运行下来的,先判断条件1,如果为真,执行语句1,如果为假,判断条件2,条件2
真,执行语句2,直到条件2也为假,执行语句3.
当然它不止可以判断两个条件,多个条件都可以,只需要多几个else if...就行。那对于十连的判断,我们就可以通过它来实现:
if (a >= 1800)
printf("十连抽");
else if (a > 180)
printf("可以抽一发");
else
printf("资源不足,是否充值");
先判断我们能不能抽十连,如果不能,再判断我们能不能抽一发单抽,如果都不行再让我们充值,当然肯定不会这么简单,我这里是简化了。
if语句还有一些需要注意的问题:
1.要注意不要在括号的后面加分号(;),分号是一个语句的结束,一旦加上分号就相当于你这个if直接结束,会导致直接执行语句1。如:
if (a >= 180);
{
printf("可以抽卡\n");
}
这样会直接在屏幕上打印出可以抽卡,不会进行判断。
2.一个if只匹配一个语句:
if (a >= 180)
printf("可以抽卡");
printf("是否充值");
在这个语句中无论a是否大于等于180,都会在屏幕上打印出”是否充值“这四个字,因为if只匹配了它下面一个语句,只为一个语句添加了判断条件,而再下面一条没有被添加判断条件,程序会直接执行它。
那么要怎样把另一个也包含在内,只需要加个大括号即可:
if (a >= 180)
{
printf("可以抽卡");
peintf("是否充值");
}
用大括号将想要包含的语句给括起来,这样就能将括号内的所有语句都赋予判断条件。
3.if语句中的else是可以省略的。
4.每一个else匹配离它最近的if。