从零开始学编程---第一步-C语言(十)

时间:2014-03-05 11:29    点击:

今天我们开始学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    通常可用来修改循环变量的值,一般是赋值语句。
这三个表达式都可以是表达式, 即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。

来源:幻想编程//所属分类:站长原创/更新时间:2014-03-05 11:29
顶一下
(16)
94.1%
踩一下
(1)
5.9%
上一篇:从零开始学编程---第一步-C语言(九)
下一篇:从零开始学编程---第一步-C语言(十一)
相关内容