目录
do-while的原理
1.do-whlie是先执行后判断,所以每个do-while都会循环一次。
2.while和for都是先判断循环条件在执行。
判断do-while先执行后判断的例子:打印一个Hello World!
这里可以看见while的循环条件为假却依然输出Hello World!说明do-while先执行后判断。
利用do-while循环计算1-100的累加和:
#include<stdio.h>
int main()
{
int sum = 0; //定义一个初始值为0的sum变量来储存累加的值
int i = 100;
do {
sum += i; //累加和
i--; //每次循环结束后i都减1
} while (i); //当i的值为0时,循环停止
printf("1-100的累加结果为:%d", sum);
return 0;
}
//结果是:5050
输入一个整数,并判断是几位数 :
#include <stdio.h>
int main()
{
int n = 0;
printf("请输入一个整数:\n");
scanf_s("%d", &n);
int i = 0;
do
{
i++;
n = n / 10; //看能被10除多少次,除到为0表示假停止循环,此时i就是位数
} while (n);
printf("%d\n", i);
return 0;
}
break的原理
1.break表示永久终止循环,只要break被执行就直接跳出循环并执行循环下的语句。
我们定义了一个for循环,当i = 5时执行了判断语句if,遇到了break时跳出了循环。
continue的原理
continue:的作用就是跳过本次循环continue后面的代码,继续进行循环判断。
#include <stdio.h> int main() { int i = 1; while (i <= 10) { if (i == 5) continue; //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅ //因为这⾥跳过了i++,所以i⼀直为5,程序陷⼊和死循环 printf("Hello World!\n"); i++; } return 0; }
但某个条件发生时,我们无需执行下面代码时就可以运用continue
goto的原理
goto:可以实现在同一个函数内跳转到设置好的标号处。
#include <stdio.h>
int main()
{
printf("Hello\n");
goto next;
printf("C语言\n");
next:
printf("跳过了C语言的打印\n");
return 0;
}
想要跳出多重循环用goto比较便捷。
猜数字游戏:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game()
{
int r = rand() % 100 + 1;
int gurss = 0;
while (1) {
printf("请猜数字>:");
scanf_s("%d",&gurss);
if (gurss < r)
{
printf("猜 小 了\n");
}
else if (gurss > r) {
printf("猜 大 了\n");
}
else {
printf("恭喜你猜对了!\n");
break;
}
}
}
void menu()
{
printf("***************************************\n");
printf("***************************************\n");
printf("*********** 猜数字启动! ************\n");
printf("*********** 1.启动 ************\n");
printf("*********** 2.结束 ************\n");
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do {
menu();
printf("请选择:>");
scanf_s("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("游戏结束\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}
}while (input);
return 0;
}