不怎么重要的前言
上一篇介绍了二维阵列的概念,基本上阵列的使用方法都不会差太多,应该不算太难理解?
这次我们来介绍程式设计中很重要的--「if条件式」!
if条件式?
在日常生活中大家一定都有做过选择,不管是参考商品价格来考虑要不要购买,或是交友软体以条件来筛选交友对象,甚至是考卷不会写于是掷骰子写答案,基本上我们都做过各式各样的选择,但这样的「条件选择」在程式中也同样被需要。
通常我们会依照资料的内容,不管是分数高低、年龄大小、兴趣,来对资料进行不同的处理后输出结果。
所以这时「if & else if & else条件式」就是很好用的语法了,如同以下例子:
if (score == 100){ printf("A++\n");}else if (score >= 95){ printf("A+\n");}else if (score >= 90){ printf("A\n");}else if (score >= 80){ printf("B\n");}else if (score >= 70){ printf("C\n");}else if (score >= 60){ printf("D\n");}else { printf("F\n");}
当我们需要依照学生分数,给予不同结果时,我们会设下许多条件就像以上的应用方法,而它的流程则像是这样的:
正式使用
规则唯有清楚if条件式的使用方式,才能真正的好好使用它且帮助解决问题。
(1) 层层执行:条件式的规则一定要记住,不一定要鉅细靡遗但一定由鬆而紧,因为程式是由上而下一行行执行的,条件式也是由上而下层层判断的,所以上面已经基本筛选过的情况下,其下的条件不一定要列的极细。
(2) 唯有条件为真(true)时,条件内的区块才被执行
(3) 执行完符合条件的区块后,会跳出整个条件式外,不会再继续执行判断。
(4) if & else if & else?
a. 只有if
if (k == 1){ printf("Bingo!\n");}
b. 只有if、else
if (k == 1){ printf("Bingo!\n");}else { printf("Noting.\n");}
c. 只有if、else if
if (k == 2){ printf("Nice!\n");}else if (k == 1){ printf("Cool!\n");}
d. if、else if、if混合
if (k == 3){ printf("Perfect!\n");}else if (k == 2){ printf("Great!\n");}else if (k == 1){ printf("Cool!\n");}else{ printf("miss.\n");}
e. 使用逻辑:
开头的判断式一定为if,而后面是否有更多条件则看情况使用else if、else,但在使用else的情况该判断式一定压尾,虽然不一定构成语法错误但关乎执行逻辑。
因为else不限定任何条件,且前面有提到只要整个if条件式中,任意条件符合且进入区块执行完,则会直接跳出整个条件式外继续执行,倘若else之后还有else if判断式,则永远不可能被执行。
#include <stdio.h>#include <string.h>int main(void){ int score; printf("input your score: %d", &score); scanf("%d", &score); if (score == 100){ printf("A++\n"); } else if (score >= 95){ printf("A+\n"); } else if (score >= 90){ printf("A\n"); } else if (score >= 80){ printf("B\n"); } else if (score >= 70){ printf("C\n"); } else if (score >= 60){ printf("D\n"); } else { printf("F\n"); } return 0;}