流程控制《3》while
来源:互联网 发布:获取windows权限 编辑:程序博客网 时间:2024/05/28 22:10
#include <stdio.h>
/*
1> while循环结构:
while (条件) {
代码段(循环体)
}
while循环执行的流程:首先判断while右边的()中的条件,由条件的真假来决定是否进入下面的代码段(或者说是否执行下面的循环体):如果为真,执行代码段;否则跳过直接执行while{}之后的代码
2> do...while循环的结构:
do {
循环体
} while (条件);
do...while执行的流程是:首先进入do下面的循环体内执行代码,接着去判断条件是否成立,如果成立,进入下一轮循环;否则,直接跳过该循环,执行后续的代码
while和do...while的区别:
1,while是先判断条件,来决定是否进入循环。所以也称为当型循环,就是当条件成立时才执行循环。
2,do...while是先执行一次循环,然后判断条件是否成立,来决定是否进入下一轮的循环。所以也称为直到型循环,就是只有当条件不成立时,才退出循环,否则一直执行循环。
3,do...while至少会执行一次,而while有可能一次也不执行(条件为假时)
3> for循环的结构:
for (语句1;条件;语句2) {
循环体
}
其中:
语句1:初始化部分
语句2:增量
for循环执行的流程:首先执行语句1一次(也只会执行一次),接着判断条件是否成立,1>如果成立,进入循环体,之后执行语句2,再之后还要进行条件判断,由条件的真假来决定是否进入这次循环;2>如果条件不成立,直接跳过for循环,执行之后的代码
//简单流程示意:
for (1;2;3) {
4;
}
执行过程:1->2->4->3->2->4->3->2->4->3->....
for 和 while 循环的比较:
1,并不是在任何情况下,for和while都可以等价转化的
2,for循环的性能更高,因为循环变量通常定义在for循环的初始化部分,这样就使得这个循环变量在for循环结束之后,占用的空间就被回收了,所以性能更高。
三种循环选择的顺序:for --> while --> do...while
----------
跳转语句:
break能用在的地方:
1,switch...case
2,循环(while do...while for)
作用是:跳出它所在的那个循环,继续执行循环{}之后的代码
continue能用在的地方:
1,循环(while do...while for)
作用是:跳出本次循环,继续进行下一次循环(是否真正能进入下一次循环,取决于条件是否为真)
goto
用于在函数内进行跳转
return
用来退出所在的函数的
------------------------
死循环的写法:
第一种写法:
while (1) {
代码段
}
第二种写法:
for (;;) {
代码段
}
*/
int main()
{
//运动:仰卧起坐
/*
int count = 0;
while (count < 50) {
count++;
if (!(count % 10)) { //每做到10的整数倍时,跳过这一次
//continue; //当上面的if条件成立时,就会跳过本轮循环后续代码的执行,继续进入下一轮循环
break;
}
printf("做的是第%d次仰卧起坐\n", count);
}
printf("========do...while===========\n");
count = 0;
do {
count++;
if (count % 10 == 0) {
//continue;
break;
}
printf("做的是第%d次仰卧起坐\n", count);
} while (count < 50);
*/
/*
printf("========for===========\n");
//for循环的初始化部分,在C89的标准中,是不允许定义新的变量的,只有C99和之后的标准才允许;如果编译时发现报错,需要在编译时加上编译选项-std=c99
for (int count = 1; count <= 50; count++) {
if (!(count % 10)) {
//continue;
break;
}
printf("做的是第%d次仰卧起坐\n", count);
}
//printf("out for, count = %d\n", count); //count的作用域限定在for循环中,出了for循环,不能被访问
*/
//printf("====== while和for并不会任何情况下都能等价转化的例子 ======\n");
//int a = 5;
/*
while (a > 0) {
if (a % 2) {
continue;
}
printf("a = %d\n", a);
a--;
}
*/
/*
for (a = 5; a > 0; a--) {
if (a % 2) {
continue;
}
printf("a = %d\n", a);
}
*/
/*
//for循环使用的陷阱1
for (int a = 10; a > 0; a--, b++) { //error
int b = 0; //b的作用范围仅仅限制在for的{}之间
}
*/
/*
//for循环使用的陷阱2
for (int a = 10; a > 0; a--) //error
//int b = 0; //作用域范围不明确,所以编译器直接报错
*/
//for循环使用的陷阱3
for (int a =10; a >0; a--) {//ok
int a =1;//可以在{}内定义和循环变量同名的变量,因为它们处于不同的作用范围内
}
return0;
}
#include <stdio.h>
int main()
{
printf("请选择您要进行的运算:\n1加法\n2减法\n");
int choice;
scanf("%d", &choice);//2
while (choice !=1 && choice !=2) {
printf("输入不合法,请重新输入:\n");
scanf("%d", &choice);
}
printf("请输入两个整数进行您选择的运算操作(两个整数之间用空格分隔):\n");
int num1, num2;
scanf("%d %d", &num1, &num2);
int result;
if (choice ==1) {
result = num1 + num2;
printf("%d + %d = %d\n", num1, num2, result);
}else {
result = num1 - num2;
printf("%d - %d = %d\n", num1, num2, result);
}
return0;
}
- 流程控制《3》while
- shell-流程控制while/until
- 流程控制:while/until循环
- Python 流程控制之while
- 3、C语言流程控制 if...else、switch、for、while、do while
- 6.c++-do-while流程控制方式
- 09-python_流程控制-for-while
- swift-控制流程02-while循环
- JAVA流程控制语句 循环 while for
- 流程控制语句:循环语句-while
- 流程控制语句:循环语句-do while
- python学习8-流程控制-while
- 流程控制语句——do while
- Python流程控制语句->While循环
- Python流程控制(if,for,while)
- Java基础知识02-流程控制-while
- Java基础知识02-流程控制-do while
- 程序流程控制 if switch while do while for
- Win32控制台中使用定时器的方法
- swift学习 一 基础部分 (上)
- 流程控制《2》switch
- [leetcode] Largest Number
- Codeforces Round #285 (Div. 1)A. Misha and Forest(构造题)
- 流程控制《3》while
- 嵌套《1》
- 嵌套《2》
- Android_常见控件之DatePicker详解
- android sdk content loader 一直显示0% 问题解决办法
- 在scala中访问postgresql(使用sbt)
- Mysql常用命令行
- 嵌套《3》
- Codeforces Round #285 (Div. 1)B. Misha and Permutations Summation(数学+数据结构打脸)