快捷搜索:

实例讲解 - C 语言的分支结构

既然是实例阐发,当然要有例子。好吧,先给出一个实验题:输入一个百分制成就,要求输出该成就是及及格。

很显然,应该应用分支布局将及格及不及格两种环境分手打印。给出解答法度榜样如下:

/* 例1 */

#include

void main() {

int n;

printf("Please input the score: ");

scanf("%d", &n);

if (n

这样一个法度榜样异常简单,但它展示了 if 分支布局最基础的用法:

if (前提) {语句1} else {语句2}

当前提为真时履行语句1,前提为假时履行语句2。在 C 说话中,所有非 0 值表示真,0 表示假。if 布局中的括号并不是必须的,当你的大年夜括号中只包孕一个语句时,可以将大年夜括号省略。如例1中的 if 语句,可以改写为:

if (a /* 例2 */

#include

void main() {

int n;

printf("Please input the score: ");

scanf("%d", &n);

if (n

例2 描述的是:假如分值小于 60 分,打印出“不及格”,并且停止 main() 函数。假如分值不小于 60 分的环境,if 分支中的所有语句都没有履行,直接履行了 printf("及格了\n"),打印出 “及格了”。

想一想,假如在 if 语句中不应用 return; 语句强制停止 main() 函数,会如何?结果是在分值小于 60 分的环境下,将“不及格”及“及格了”都打印出来了。缘故原由是显而易见的:由于打印“及格了”的语句不在 else 分支中,更不在 if 布局中,无论什么环境都要履行。

if 语句可以变得更繁杂——嵌套,即 if 布局中再套 if 布局。如上题中,我们再加上一点点容错处置惩罚,先判断输入的分值是否在 0 到 100 之间:

#include

void main() {

int n;

printf("Please input the score: ");

scanf("%d", &n);

if (n >= 0 && n   例3 描述:假如 n 在 0 到 100 之间,再进行及格和不及格的判断,否则打印差错信息。

这样以来,或许就有点糊涂了:这个 else 到底是哪一个 if 的呢?每一个 if 或者 else 后面,都应该跟一个语句或者由一对大年夜括号括起来的一组语句。而且也只能跟一个语句或者一组由大年夜括号括起来的语句。由大年夜括号的成对关系,便轻易判断了。

例3 是在 if 分支中嵌套 if 布局,else 分支中同样可以嵌套 if 布局,请看例4:

/* 例4 */

#include

void main() {

int n;

printf("Please input the score: ");

scanf("%d", &n);

if (n100) {

printf("输入分值差错!");

}

else {

if (n

/* 例6 */

#include

void main() {

int n;

printf("Please input the score: ");

scanf("%d", &n);

if (n100) {

printf("输入分值差错!");

}

else {

if (n

啊,现在清楚多了,不过用那么多 else if 真是麻烦。为什么不用 switch 呢?C 说话的 switch 分支便是常说的 case 分支,也即多分支。if 布局最多只能有两条分支,而 switch 最多可以有……数不清条分支!先看看它是怎么用的:

/* 例7 */

#include

void main() {

int n;

printf("Please input the score: ");

scanf("%d", &n);

if (n100) {

printf("输入分值差错!");

}

switch (n / 10) {

case 9:

printf("A\n");

break;

case 8:

printf("B\n");

break;

case 7:

printf("C\n");

break;

case 6:

printf("D\n");

break;

default:

if (n == 100) {

printf("A\n");

}

else {

printf("E\n");

}

}

}  是不是没搞懂为什么有 n / 10 一句?这个语句是取 n 除以 10 的整数商,舍弃余数。之以是要这样作,是由于 case 后面只能接一个常数(或者常量),我没法子像在 Foxbase 中一样应用 case n > 90。

您可能还会对下面的文章感兴趣: