一.再谈if语句
一个基本的if语句由一个关键字if开头,跟上在括号里表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条件语句。如果表示条件的逻辑语句成立,那么就执行后面跟着的这对大括号{}里的语句,否则就跳过这些语句不执行。
if语句之后的大括号也可以不写,代码同样会执行,但是只能写一个运行语句,不能写多个。
#include <stdio.h>
int main()
{
const int PASS = 60;
int score;
printf("请输入你的成绩:");
scanf_s("%d", &score);
printf("你输入的成绩是%d.\n", score);
if (score < PASS)
printf("很遗憾,这个成绩没有及格。");
else
printf("祝贺你,这个成绩及格了。");
printf("再见\n");
}
二.循环
下面,我们来引入一个问题:
如何判断352是几位数?
首先,根据之前if语句的学习,我们可以判断352是不是介于100-999之间,如果是,那么就是三位数,同样的道理,可以写出四位数,两位数等。
使用if语句这个方法,具有一定的局限性。
所以我们要编写一个数数的程序,引入while语句。
#include <stdio.h>
int main()
{
int x;
int n = 0;
scanf_s("%d", &x);
n++;
x /= 10;
while (x > 0) {
n++;
x /= 10;
}
printf("%d\n", n);
}
while后面的大括号中的语句会一直运行,直到不满足小括号中的条件。
在while语句中,必须有改变条件的语句,否则语句将一直运行下去,不会跳出循环体,成为一个死循环。
条件成立是循环继续的前提。
三.do-while循环
do-while循环格式:
do{
<循环语句>
}while(循环条件);
在进入循环体之前不做检查,而是在执行完一轮循环体的代码之后,再来检查循环条件是否满足,如果满足就进行下一轮循环,不满足则结束循环。
#include <stdio.h>
int main()
{
int x;
int n = 0;
scanf_s("%d", &x);
do {
x /= 10;
n++;
} while (x > 0);
printf("%d", n);
}
四.for循环
问题引入:计算阶乘;输入一个n,计算n!。
#include <stdio.h>
int main()
{
int n;
scanf_s("%d", &n);
int fact = 1;
int i = 1;
for (i = 1; i <= n; i++) {
fact *= i;
}
printf("%d!=%d\n", n, fact);
}
for循环后面小括号中,第一个语句是初始条件;第二个语句是循环继续的条件;第三个语句是循环每一次要做的事情。
for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步骤进行调整。
五.三种循环
如果循环有固定次数,那么用for循环;
如果循环必须执行一次,那么用do-while循环;
其他情况用while循环