一.while循环
/*和if的格式相同
if(条件表达式)
{
语句1;
语句2;
。。。。
}
while(条件表达式)
{
语句1;
语句2;
。。。
}
//初学者写循环
1.确定循环要执行的操作
2.确定约束条件
if和while
if:如果条件成立,就执行if后的大括号里的内容,如果条件不成立,就不执行
while:如果条件成立,就执行while后的大括号里的内容,执行完毕以后,再进行条件判断,如果条件成立,继续执行while后的大括号里的内容,直到条件不成立,为止
while后面的大括号中的内容,称为循环体
*/
int main()
{
// printf("转圈\n");
// printf("转圈\n");
// printf("转圈\n");
// printf("转圈\n");
// printf("转圈\n");
int age = 20;
if (age > 18) {
printf("成年人\n");
}
int count = 0;
while (count < 5) {
printf("转圈 %d\n",count +1);
count++;
}
return 0;
}
*.while注意点
int main()
{
// 1.C语言中任何数字都有真假,非0及是真.
// 死循环 在我们程序中尽量避免死循环,但是有的时候,我们需要用到死循环
// while (1){
// printf("123\n");
// }
// 2.while可以省略大括号,条件满足,就会执行小括号后面的第一行语句
// if(1)
// printf("123454\n");
// while (1)
// printf("1234\n");
// printf("4567\n");//和循环无关
// 3.作用域的问题
// while (1){
// int a = 10;
//
// printf("a = %d\n",a);
// }
// 4.分号是空语句
// if(0);
// {
// printf("666\n");
// }
//
while (1);
printf("while 1\n");
// 5.while(1);最简单的死循环
return 0;
}
/*
for格式
for(初始化表达式;条件表达式; 循环后操作表达式)
{
语句1;
语句2;
。。。。
}
初始化表达式:在整个for循环中首先执行的,只会执行一次
条件表达式:只有条件为真,才会执行循环体
循环后操作表达式:当循环执行完毕就会执行的操作表达式
*/
int main()
{
// int age = 0;
// while (age < 5) {
// printf("转圈\n");
// age++;
// }
1 25 4 7
for (int age =0; age < 5; age++) {
3 6
printf("转圈\n");
//计数
}
// 1.执行初始化表达式(有且只执行一次)
// 2.判断条件表达式
// 3.条件为真,执行循环体
// 4.执行循环体后操作表达式
// 5.判断条件表达式
// 6.重复3~5步
// 条件表达式为假,跳出循环
return 0;
}
/*
当变量再循环外面还要用的时候,用while循环
当变量在循环结束以后不需要使用,我们就可以用for
*/
#include <stdio.h>
int main(int argc,const char * argv[])
{
int i = 0;
while (i < 3) {
printf("i = %d\n",i);
i++;
}
printf("循环结束以后 i = %d\n",i);
printf("-------------------\n");
for (int j =0; j < 3; j++) {
printf("j = %d\n",j);
}
// printf("j = %d\n",j);
return 0;
}
// 1.for也能省略大括号和while if一样的,当条件满足的时候,会执行for后面的第一行语句
// for(int i = 0; i < 3; i++)
// printf("for \n");
// 2.和if while一样,当省略大括号的时候,不能在大括号后面这条语句定义变量,作用域混乱
// for (int i = 0; i < 3; i++)
// int x = 30;
// printf("x = %d\n",x);
三.循环嵌套
多种嵌套方式
/*
1.循环嵌套
while(条件表达式)
{
while(条件表达式)
{
语句1;
语句2;
}
}
2.for(;;)
{
for(;;)
{
语句1;
}
}
3.for(;;)
{
while(条件表达式){
语句
....
}
}
*/
int main()
{
// 要求打印好友列表
// printf("好友列表1\n");
// printf(" 好友1\n");
// printf(" 好友2\n");
// printf("好友列表2\n");
// printf(" 好友3\n");
// printf(" 好友4\n");
// 做法
// for (int i = 0; i < 3; i++) {
// printf("好友列表1\n");
// printf(" 好友1\n");
// printf(" 好友2\n");
// }
for (int i =0; i < 10; i++) {
printf("好友列表1\n");
for (int j =0; j < 3; j++) {
printf(" 好友1\n");
}
// printf(" 好友1\n");
// printf(" 好友2\n");
}
// 这样写法的好处
// 1,如果修改好友的个数,比较简单
// 2.可扩展性好
return 0;
}
*.总结
/*
写循环的步骤:
1.确定我要重复执行的操作
2.确定约束条件
//当条件表达式为真,才会执行循环体,直到条件不满足为止
while(条件表达式)
{
语句1;
。。。。。
}
//无论条件是否满足,首先执行一次循环体
do
{
}while(条件表达式);//分号必须写
// 开发中,经常用for循环,因为可以优化内存,灵活比较强
1 2 5 4
for(初始化表达式;条件表达式; 循环后操作表达式)
{
3
语句;
。。。
}
continue;//跳过本次循环,直接进入下次判断
使用场合:
while
do while
for
break;//跳出循环
使用场合
switch
while
do while
for
共同点:
当continue和break单独存在的时候,其后面不可以写任何语句
因为都执行不到
*/
int main()
{
for (int i =0; i < 3; i++) {
continue;
printf("仰卧起坐\n");
}
for (int i =0 ; i < 3; i ++) {
break;
printf("俯卧撑\n");
}
printf("运行结束\n");
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 2; j++) {
// if (j == 0) {
// break;//就近原则,写在哪个循环里,就会跳出哪个循环
// }
// printf("俯卧撑\n");
// }
// }
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 2; j++) {
// if (j == 0) {
// continue;//跳出循环,就近原则,写在那个循环里,就跳出哪个循环的本次循环,进行循环的下一次判断
// }
// printf("俯卧撑\n");
// }
// }
// int count = 0;
// while (count < 10) {
// printf("俯卧撑\n");
// count++;
// }
return 0;
}