一、while循环
while的使用方式与if很像:
while(表达式)
{语句
}
先判断表达式是否为真,如果为真,则进入循环,如果为假,则跳出循环。
比如最简单的从1打印到100:
#include<stdio.h>
int main() {
int n=1;
while (n < 101) {
printf("%d ", n);
n++;
}
return 0;
}
其效果如下:
二、for循环
for循环使用格式如下
for(循环变量的初始化;循环结束条件的判断;循环变量的调整){
语句 }
for循环和while循环之间是可以相互转换的,比如我们重新使用for循环来打印1-100:
#include<stdio.h>
int main() {
int n=1;
for (n = 1; n < 101; n++) {
printf("%d ", n);
}
return 0;
}
其运行结果如下:
可以看到,这两种循环产生的结果是一样的。for循环将循环的三个要素放在一起,比起while循环更加直观。
三、do-while循环
do 语句
while(表达式)
do-while循环与while循环的区别在do-while循环先执行后判断,及一定会执行一次。
我们使用do-while循环再次将1-100打印:
#include<stdio.h>
int main() {
int n=1;
do {
printf("%d ", n);
n++;
} while (n < 101);
return 0;
}
其打印结果与for、while一致。
四、continue和break
break意味着跳出循环,而continue代表跳出本次循环
接下来我们举一个例子来让大家更直观的感受到两者的区别:
#include<stdio.h>
int main() {
int n=1;
for (n = 1; n < 11; n++) {
if (n == 5)
break;
printf("%d ", n);
}
return 0;
}
#include<stdio.h>
int main() {
int n=1;
for (n = 1; n < 11; n++) {
if (n == 5)
continue;
printf("%d ", n);
}
return 0;
}
五、一个小练习
打印出101-200所有的素数
#include<stdio.h>
#include<math.h>
int main() {
int n,flag;
for (n = 101; n < 200; n += 2) {//偶数不可能是素数
flag = 1;
for (int i = 2; i <= sqrt(n); i++) {//sqrt为square root,取平方根
if (n % i == 0) {
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", n);
}
return 0;
}
其运行结果如下: