while(表达式)
循环语句;
// while 循环中
// break 是用于永久的终止循环
// continue 是跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断
/// 循环打印 1-10 的数:
int main()
{
int i = 1; //初始化
while(i<=10){ //循环判断条件
printf("%d ",i); //循环体
i++; //累加调整
}
return 0;
}
/*
输出结果:
1 2 3 4 5 6 7 8 9 10
*/
如果 while 循环遇到 break 或 continue 的情况:
#include
int main()
{
int i = 1;
while(i<=10){
if(i == 5)
// {break;}
break;
printf("%d ",i);
i++;
}
return 0;
}
// ===> 1 2 3 4
while循环执行过程中遇到 continue ,则直接跳过后续代码,【此题不会 打印 和(i++)】,返回while,重新判断——导致死循环
#include
int main()
{
int i = 1;
while(i<=10){
if(i == 5)
/// {continue;}
continue; // 当 i = 5时,执行continue,
printf("%d ",i); //后面8,9行(即循环中continue后面的代码)都不会执行,直接跳到while重新判断,死循环
i++;
}
return 0;
} // ===> 1 2 3 4 .......(死循环)
#include
int main()
{
int i = 1;
while(i<=10){
if(i == 5)
// {continue;}
continue; // 当 i = 5时,执行continue,
printf("%d ",i); //后面8,9行(即循环中continue后面的代码)都不会执行,直接跳到while重新判断,死循环
i++;
}
return 0;
} // ===> 1 2 3 4 .......(死循环)
#include
int main()
{
int ch = 0;
while((ch = getchar()) != EOF)
{
//printf("%c",ch);
putchar(ch);
}
return 0;
}
char password[20]={0};
printf("请输入密码:>");
scanf("%s",password);
getchar();
int ch =0;
while(ch = getchar() != '\n')
{
; //空语句
} // 将"\n"包括"\n"之前的字符都清理掉了
printf("请确认密码(Y/N):>");
int ret = getchar();
if(ret == 'Y')
{
printf("yes\n");
}
else{
printf("no\n");
}
// 输入密码并确认
#include
int main()
{
char password[20]={0};
printf("请输入密码:>");
//假设输入密码为:12334asd,输入完成后,按回车(\n)
scanf("%s",password); // scanf() 只读取 12334asd
//getchar(); // 读取\n,防止 “int ret = getchar()” 被\n占用,而导致代码出错
//存在局限性,密码中有空格(密码为"123 456asdf"),仍是存在问题
int ch =0;
while(ch = getchar() != '\n')
{
; //空语句
} // 将"\n"包括"\n"之前的字符都清理掉了
printf("请确认密码(Y/N):>");
int ret = getchar();
if(ret == 'Y')
{
printf("yes\n");
}
else{
printf("no\n");
}
return 0;
}
#include
int main()
{
char ch = '\0';
while(ch = getchar() != EOF)
{
if(ch < '0' || ch > '9')
continue;
putchar(ch);
}
return 0;
}
for(表达式1;表达式2;表达式3)
循环语句;
#include
int main()
{
int i;
for(i = 1; i<=10; i++){
printf("%d ",i); // 循环体
}
return 0;
}
/*
输出结果:
1 2 3 4 5 6 7 8 9 10
*/
#include
int main()
{
int i = 0;
for(i = 1; i <= 10; i++)
{
if(i == 5)
break; // ===> 1 2 3 4
printf("%d ",i);
}
return 0;
}
#include
int main()
{
int i = 0;
for(i = 1; i <= 10; i++)
{
if(i == 5)
continue; // ===> 1 2 3 4 6 7 8 9 10
printf("%d ",i);
}
return 0;
}
int i = 0;
for(i = 0; i < 10; i++)
{}
int i = 0;
for(i = 10; i<= 9; i++)
{}
#include
int main()
{
for(;;)
{
printf("hehe\n");
}// for 循环中的 初始化部分、判断部分、累加(减)调整部分 是可以省略的,但可能会存在问题
return 0;
}
#include
int main()
{
int i = 0;
for(; i < 10; i++)
{
printf("hehe\n");
}
return 0;
}
#include
int main()
{
int i = 0;
int j = 0;
for(i = 0; i < 10; i++)
{
for(j = 0; j < 10; j++)
{
printf("hehe\n");
}
}
return 0;
} // ===>打印 100 个 “hehe”
#include
int main()
{
for(int i = 0; i < 10; i++) // c99语法才支持这种写法(c++支持)
{
printf("hehe\n");
}
return 0;
}
#include
int main()
{
int x, y;
for(x = 0, y = 0; x < 2 && y < 5; ++x, y++)
{
printf("hehe\n");
}
return 0;
}
#include
int main()
{
int i = 0;
int k = 0;
for(i = 0, k = 0; k = 0; k++)
k++;
return 0;
}
// ===> 0次
// 因为 “ k = 0 ” 是赋值,为0,即为假,不满足,不进入循环
do
循环语句;
while(表达式);
#include
int main()
{
int i = 11;
do
{
printf("%d", i);
i++;
} while (i < 10);
return 0;
}
// ===> 11 ;
// 即使不满足 while 条件表达式,仍然会 do 一次(执行一次)
#include
int main()
{
int i = 1;
do
{
if(i == 5)
break; // 若是 continue ,则输出 1,2,3,4,... 循环到 i=5 时,形成死循环
printf("%d ", i);
i++;
} while (i < 10);
return 0;
}
// ===> 1 2 3 4 ;break 直接终止循环
#include
int main()
{
int i = 1;
do
{
i++;
if(i == 5)
break; // 若是 continue ,则输出 2,3,4,6,7,8,9
printf("%d ", i);
} while (i < 10);
return 0;
}
//===> 2,3,4