循环语句小结
Posted benxiangsj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环语句小结相关的知识,希望对你有一定的参考价值。
一、while循环
我们已经掌握了if语句
if(条件)
语句;
当条件满足的情况下,if语句后的语句执行,否则不执行。但这个语句只会执行一次,当我们需要让同一件事执行多次时,我们就可可以使用while语句实现循环。
1.语法结构
while(表达式)
循环语句;
2. 应用
1) 在屏幕上打印1-10
int main()
{
int i = 1;
while(i <= 10)
{
printf("%d\\n",i);
i++;
}
return 0;
}
2)while循环中break的使用
只要在循环中执行break,则立即跳出整个循环。
int main()
{
int i = 1;
while(i <= 10)
{
if(5 == i)
break; //当i=5时,循环结束
printf("%d\\n",i);
i++;
}
return 0; //输出1,2,3,4
}
3) while中continue的作用
跳过本次循环后面的代码,回到while的判断部分
int main()
{
int i = 1;
while(i <= 10)
{
if(5 == i)
continue; //当i=5时,不执行printf和i++语句,回到while,判断5是不是小于10
printf("%d\\n",i);
i++;
}
return 0; //输出1,2,3,4,因为5始终小于10,后面是死循环
}
4) 例一:
getchar--输入一个字符
putchar--输出一个字符
它们只针对字符的输入、输出,并且一次只能输入、输出一个字符
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF) //实现输入多个字符
{
putchar();
}
return 0; //例:输入abc,输出abc
}
利用while语句清理缓冲区
int main()
{
char input[20] = {0};
printf("请输入密码:>");
scanf("%s", input); //abcdef
int tmp = 0;
while ((tmp = getchar()) != '\\n') //清理缓冲区
{
;//空语句
}
printf("请确认密码(Y/N):>");
int ch = getchar();
if (ch == 'Y')
{
printf("确认成功\\n");
}
else
{
printf("确认失败\\n");
}
return 0;
}
例二:
利用while语句,当且仅当输入数字时打印
int main()
{
int ch = 0;
while ((ch = putchar()) != EOF)
{
if(ch < '0' || ch > 9)
continue;
putchar();
}
return 0; //输入a,程序没有反应;输入3,屏幕上打印3
}
二、for循环
1.语法
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量
表达式2为条件判断部分,用于判断循环时候终止
表达式3为调整部分,用于循环条件的调整
2.应用
1)打印1-10数字
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
printf("%d ", i);
return 0;
}
2)for循环中break的使用
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (5 == i)
{
break;
}
printf("%d ", i);
}
return 0; //屏幕上打印1 2 3 4
}
3)for循环中continue的使用
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (5 == i)
{
continue ;
}
printf("%d\\n", i);
}
return 0; //不会和while循环语句一样陷入死循环,因为在判断部分有i++,所以结果为1234678910不会打印5
}
for的初始化,判断,调整三个部分都可以省略。中间的判断部分如果省略,意味着判断恒为真,就构成了死循环。
4)for循环的嵌套
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("hehe\\n");
}
}
return 0; //打印9个hehe
}
三、do.....while循环
1.语法
do
循环语句;
while(表达式);
2.应用
1)用do...while打印1-10
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
2)do..while循环中的break
int main()
{
int i = 1;
do
{
if (5 == i)
break;
printf("%d ", i);
i++;
} while (i <= 10);
return 0; //打印 1 2 3 4
}
3)do...while中的continue
int main()
{
int i = 1;
do
{
if (5 == i)
continue;
printf("%d ", i);
i++;
} while (i <= 10);
return 0; //打印1 2 3 4,并且陷入死循环
}
四、练习
1.计算n的阶乘
#include <stdio.h>
#include <string.h>
int main()
{
int n = 0;
scanf("%d\\n", &n);
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
printf("%d\\n", ret);
return 0;
}
2.计算1!+2!+...+10!
int main()
{
int n = 0;
int i = 0;
int sum = 0;
int ret = 1;
for (n = 1; n <= 10; n++)
{
ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
sum = sum + ret;
}
printf("%d\\n", sum);
return 0;
}
这个代码可以进行优化如下:
int main()
{
int n = 0;
int sum = 0;
int ret = 1;
for (n = 1; n <= 10; n++)
{
ret = ret * n;
sum = sum + ret;
}
printf("%d\\n", sum);
return 0;
}
以上是关于循环语句小结的主要内容,如果未能解决你的问题,请参考以下文章