while循环、do...while
void test08()
{
while(循环条件)
{
//循环语句
}
//如果“循环条件”为真,就进入循环体执行“循环语句”
}
注意:
- while没有初始化语句,用户提前初始化好。
- while没有步进语句,用户必须在循环语句中 写好 步进语句。
案例:
#include<stdio.h>
void test08()
{
int i = 1; //提前初始化
int sum = 0; //局部变量如果不初始化,内容不确定
while(i <= 100)
{
sum += i;
i++;//步进条件
}
printf("sum = %d\n",sum);
}
int main(int argc,char *argv[])
{
test08();
return 0;
}
do ... while
语法:
void test09()
{
do
{
//循环语句
}while(循环条件);
}
先执行循环语句,再判断循环条件是否为真,如果为真 进行下次循环,如果为假 直接退出循环
#include<stdio.h>
void test09()
{
int num = 0;
do
{
printf("ok\n");
}while(num >0);
}
int main(int argc,char *argv[])
{
test09();
return 0;
}
goto 案例:
#include<stdio.h>
void test10()
{
printf("---------------01----------------\n");
printf("---------------02----------------\n");
goto here;
printf("---------------03----------------\n");
printf("---------------04----------------\n");
printf("---------------05----------------\n");
here:
printf("---------------06----------------\n");
printf("---------------07----------------\n");
}
int main(int argc,char *argv[])
{
test10();
return 0;
}
运行结果:
---------------01----------------
---------------02----------------
---------------06----------------
---------------07----------------
练习:
重复输入1~7的数值判断星期几,注意输入0就结束程序,如果是0或者1~7以为的数,请提示“请重新输入有效数字”。
#include<stdio.h>
void test11()
{
int num =0;
do
{
printf("请输入数字1~7:");
scanf("%d",&num);
switch(num)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期七\n");
break;
default:
printf("请重新输入有效数字:");
scanf("%d",&num);
}
}while(num != 0);
}
int main(int argc,char *argv[])
{
test11();
return 0;
}
总结:
for while 我们如何选择呢?
如果循环的次数是确定的,建议选择for
如果循环的次数不确定,只知道退出的条件,建议选择while
|