If循环最经典的是if-------else 语句,但是在有的场景中不适合带else来进行判断。0-100出现9的数字有几个这个就是经典典例。
写编程,就是要将编程数字化,以数学的形式呈现,在进行编程。
如是求0-100出现的数字是多少,就能得出。9 19 29 39 49 59 69 79 89 99 91 92 93 94 95 96 97 98 这么多数字,如果用代码来实现,之后就可以写代码了。
写代码先写一个主函数
#include<stdio.h>
int main()
{
return 0;
}
之后我们要实现从0-一百的数字,这时候for循环比较合适,这时候我们用for循环。(一定要注意先定义变量)
#include<stdio.h>
int main()
{
int i = 0; //定义初始变量
int j = 0; //定义初始变量
for (i = 1; i <= 100; i++) //利用for循环来实现1-100个数字
{
}
return 0;
}
这时候我们便实现了0-100个数字,下面要思考的问题是我们如何得出,出现九的数字。我们看到 9 19 29 39 49 59 69 79 89 99 这些都是个位上含有九的,如果我们的 i%10 是不是 能实现个位是带 9 的数字。这时候我们就开始写能让个位满足条件的语句
#include<stdio.h>
int main()
{
int i = 0; //定义初始变量
int j = 0; //定义初始变量
for (i = 1; i <= 100; i++) //利用for循环来实现1-100个数字
{
if (i % 10 == 9) //用第一个if语句来判断像 9 19 等个位带 9 的数字
j++; //判断成功个数加一
}
return 0;
}
因为是含有九的个数所以我们在 if 判断后给前面定义的变量加一,如果是个位上的是 9 就对 j 加1,这时候我们就要对 90 91 92 93 94 95 96 97 98 99 这些情况进行判断.
怎么判断,对他们 / 10 不就行了,但是我们可以看到 无论是上面还是下面都出现了 99 这个数字,如果我下面用 else 语句 会导致下面也对 99 进行判断 这时候结果就错了。
怎么办,如果使用 两个 if 嵌套进行判断就不会出现这个问题了,当年上面走到 99 进行判断的时候,当判断过就直接会跳出 if 不会在进行判断了。
#include<stdio.h>
int main()
{
int i = 0; //定义初始变量
int j = 0; //定义初始变量
for (i = 1; i <= 100; i++) //利用for循环来实现1-100个数字
{
if (i % 10 == 9) //用第一个if语句来判断像 9 19 等个位带 9 的数字
j++; //判断成功个数加一
if (i / 10 == 9) //用第二个来判断 91 92 等十位带九的数字
j++;
}
printf("1-100出现带9的数字有:%d个\n",j);
return 0;
}
由此我们可以得出一个结论,当有一个事物它可以同时满足两种,两种以上的情况时,如何要用到 if 语句便不适合用 if else 语句,对多个 if 语句进行嵌套 可能会比较好一些