从零开始学编程---第一步-C语言(十)
今天我们开始学C语言第1重要的部分--循环,请做好准备,这一部分我可能要介绍很久,而且你必须掌握循环
为什么要让程序循环?想一想电脑可以用来做一些人们不愿意做的事情,电脑从来不会感到厌烦,于是最好给它们分配一些普通的重复的任务,而把需要思考的部分留给人来做
我们先学习第一种循环 while 循环 while是当……时候的意思,但在程序里你最好理解为如果的意思,和if一样
它的格式
while()
{}
它和if一样,如果后面只跟一条语句可以不要大括号
例如
while(a>3)
{
printf("哈哈");
}
这个程序的意思是如果a>3,这个程序就会循环的执行大括号里的语句,一直循环的打印哈哈,直到你关闭程序
而
if(a>3)
{
printf("哈哈");
}
if语句只会执行一次
这种无限循环不是我们所期望的,怎么解决?只要改变条件的值就可以了
while(a>3)
{
printf("哈哈");
a--;
}
假如输入a为4,当程序执行一次的时候,a-- , a变成了3 while(a>3)这个条件不成立,也就不会继续执行了,程序也就只会执行一次
注意不要在括号后面加分号
while(a>3);
{
printf("哈哈");
}
会导致后面程序无法正常运行,还有可能导致无限循环(并不是指上面的例子)
while循环总是出现在循环的开始或结尾
放在结尾的是do-while循环
格式
do
{}
while();
如果do后面只一条语句大括号可不要
do
{
printf("哈哈");
}while(a>3);
意思是先执行一次大括号里的语句,在看while的条件,如果条件成立,则循环执行大括号里的语句,反之,不再执行,do-while语句能至少执行一次大括号里的程序
注意:while(a>3); 括号后面必须加分号,和while在开头的不同
值得注意的是
do
{
printf("哈哈");
a++;
}while(a>3);
如果a=3就会是无限循环,原因是第一次执行a就被a++ a=4 然后在看的while条件,条件成立,无限循环
只有当循环主图必须至少执行一次的时候猜用do-whlie,而不是while
看程序
#include <stdio.h>
main()
{
int a=1;
puts("这是while循环的结果");
while(a<=20)
{
printf("%d\n",a);
a++;
}
a=1; //a重新为1
puts("这是do-while循环的结果");
do
{
printf("%d\n",a);
a++;
}
while(a<=20);
}
while和do-while实现了同样的功能
while(a<=20)
{
printf("%d\n",a);
a++;
}
当a=1时 条件成立 打印1 然后a++ a=2 然后返回whlie 测试条件
a=2 条件又成立 打印2 然后a++ a=3 又返回whlie 测试条件
。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。
a=21 条件不成立,退出循环
大家能够理解吧
还有第2种循环叫做for循环,for循环是使用最高的循环,for循环比while和do-while提供了更多的控制,使用for循环,可以准确制定循环的次数,而使用while循环,只要条件成立就必须继续循环下去
格式
foe(;;)
{}
for后面只一条语句时也可不要大括号,注意小括号后面不要加分号
a=1
while(a<=20)
{
printf("%d\n",a);
a++;
}
用for语句可以写成
for(a=1;a<=20;a++)
{
pritnf("%d",a);
}
这个很简短吧
看程序
#include <stdio.h>
main()
{
int a=1;
puts("这是while循环的结果");
while(a<=20)
{
printf("%d\n",a);
a++;
}
a=1; //a重新为1
puts("这是do-while循环的结果");
do
{
printf("%d\n",a);
a++;
}
while(a<=20);
puts("这是for循环的结果");
for(a=1;a<=20;a++) //这里的a已经重新为1
{
printf("%d\n",a);
}
}
for(a=1;a<=20;a++)
{
printf("%d\n",a);
}
for是为了。。。的意思
for(a=1;a<=20;a++) 如果理解这一句?
可以这样理解
为了循环,首先初始化赋值a为1 循环条件如果a<=20就循环 每循环一次就a++
直到a不满足a<=20条件就退出循环
fou括号里的东西并不是必须的,你也可以写在它的括号外
a=1
for(;a<=20;a++)
{
printf("%d",a);
}
或者
a=1;
for(;a<=20;)
{
printf("%d\n",a);
a++;
}
}
这样子跟while一样
这里你还没法把条件也放到括号外,因为具体要看是什么循环
如果括号什么都不要
for(;;)
{
printf("%d\n",a);
}
它会一直循环下去
for(表达式1;表达式2;表达式3)
语句;
表达式1 通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。
表达式2 通常是循环条件,一般为关系表达式或逻辑表达式。
表达式3 通常可用来修改循环变量的值,一般是赋值语句。
这三个表达式都可以是表达式, 即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。
最新内容
热点内容
- QQ群
- 返回首页
- 返回顶部