1. 程式人生 > >C語言 第五章 循環結構

C語言 第五章 循環結構

i+1 1-1 之間 cat div toolbar print 所有 mage

  • 一、for
  • 二、while
  • 三、do while
  • 四、continue
  • 五、break

一、for

請在屏幕上輸出1000個*號

printf("*************************....");

技術分享
#include "stdio.h"
void main()
{
    int i;
    for(i=1;i<=1000;i++){
      printf("*");
    }
}
技術分享

技術分享

for(表達式A;表達式B;表達式C)
{
要重復執行的代碼塊D;
}

1、表達式A先執行,且只執行一次

2、表達式B再執行,如果為真則執行代碼塊D

3、再執行表達式C,再選擇表達式B,回到第2步

4、ABCD都可以省去 for(;i>=100;);

5、表達式1通常用來給循環變量賦初值,一般是賦值表達式i=1 i=-1,j=100

6、表達式2通常是循環條件,一般為關系表達式或邏輯表達式i>=5 i>5&&j<=8

7、表達式3通常可用來修改循環變量的值,一般是復合賦值語句i++,i--, i+=5,j++

8、這三個表達式都可以是逗號表達式,即每個表達式都可由多個表達式組成。三個表達式都是任選項,都可以省略。

技術分享
#include "stdio.h"
void main()
{
    int i,j;
    for(i=1;i<=10;i++)
    {
        printf("%d \n",i);
    }
}
技術分享 技術分享 技術分享
#include "stdio.h"
void main()
{
    int i,j;
    for(i=-10;i<=10;i++)
    {
        printf("%d \n",i);
    }
}
技術分享

技術分享

技術分享
#include "stdio.h"
void main()
{
    int i,j;
    for(i=1;i<=10;i=i+3)
    {
        printf("%d \n",i);
    }
}
技術分享

技術分享

技術分享
#include "stdio.h"
void main()
{
    int i,j;
    for(i=10;i>0;i--)
    {
        printf("%d \n",i);
    }
}
技術分享

技術分享

技術分享
#include "stdio.h"
void main()
{
    int i,j;
    for(i=10,j=1;i>0;i--,j++)
    {
        printf("%d + %d = 11 \n",i,j);
    }
}
技術分享

技術分享

技術分享
#include "stdio.h"
void main()
{
    int i=1;
    for(;i<=10;i++)
    {
        printf("\n %d",i);    
    }
}
技術分享 技術分享
#include "stdio.h"
void main()
{
    int i=1;
    for(;i<=10;)
    {
        printf("\n %d",i);    
        i++;
    }
}
技術分享 技術分享
#include "stdio.h"
void main()
{
    int i=1;
    for(;;)
    {
        printf("\n %d",i);    
        i++;
        if(i>10)break;
    }
}
技術分享

技術分享

for語句中的各表達式都可省略,但分號間隔符不能少。如:
for(;表達式;表達式)省去了表達式1。
for(表達式;;表達式)省去了表達式2。
for(表達式;表達式;)省去了表達式3。
for(;;)省去了全部表達式。
在循環變量已賦初值時,可省去表達式1,如省去表達式2或表達式3則將造成無限循環, 這時應在循環體內設法結束循環。
循環體(要重復的語句)可以是空語句。

練習:計算出1-100之間奇數之和。1+3+5+7....99=?

技術分享
#include "stdio.h"
void main()
{
    //練習:計算出1-100之間奇數之和。1+3+5+7....99=?
    int i,s=0;
    for(i=1;i<=100;i++)
    {
        if(i%2==1){
            s=s+i;
        }
    }
    printf("結果:%d",s);
}
技術分享

2500

技術分享
#include "stdio.h"
void main()
{
    //練習:計算出1-100之間奇數之和。1+3+5+7....99=?
    int i,s=0;
    for(i=1;i<=100;i=i+2)
    {
            s=s+i;
    }
    printf("結果:%d",s);
}
技術分享

2500

二、while

while語句的一般形式為:
初值;
while(表達式A)
{
表達式的值為真時要重復的語句塊;B
步長;
}
其中表達式是循環條件
要重復的語句塊和步長都為循環體
while語句的語義是:計算表達式的值,當值為真(非0)時, 執行循環體語句。

1、程序先判斷A是否為真,如果為真則執行循環體B

2、當執行完循環體後再回到第1步

3、當表達式A為假時結束循環

技術分享
#include "stdio.h"
void main()
{
    int i=1;
    while(i<=10)
    {
        printf("%d \n",i);
        i=i+1;
    }
}
技術分享

技術分享

while語句中的表達式一般是關系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續循環
循環體如包括有一個以上的語句,則必須用{}括起來, 組成復合語句。
應註意循環條件的選擇以避免死循環。

練習:

練習:計算出1-100之間奇數之和。1+3+5+7....99=?

技術分享
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
   int i=1,s=0;
   while(i<=100)
   {
         s=s+i;
         i=i+2;
   } 
   printf("s=%d",s);
}
技術分享

2500

練習:列出1-1000之間所有能同時被3與7整除的數。

三、do while

do-while語句的一般形式為:
do
{
要重復的語句塊;
}while(表達式);
其中“要重復的語句塊”是循環體
表達式是循環條件
語義是:先執行循環體語句一次,再判斷表達式的值,若為真(非0)則繼續循環,否則終止循環。

技術分享
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i=1,s=0;
    do
    {
        s=s+i;
        i++;
    }while(i<=5);
    printf("%d",s);
}
//i=1 2 3 4 5  6
//s=0 1 3 6 10 15
技術分享

15

適用於必須要執行一次的應用,如輸入一個合格的數字。

技術分享
#include "stdio.h"
void main()
{
    int n;
    do
    {
        printf("請輸入1-7之間的數:");
        scanf("%d",&n);
    }while(n<1||n>7);
}

技術分享

技術分享

四、continue

在for,while,do-while中遇到continue表示結束當次循環,繼續下次循環。

技術分享
#include "stdio.h"
void main()
{
   int i;
   for(i=1;i<=10;i++)
   {
          printf("●");
          printf("□");
   }
}
技術分享

技術分享

技術分享
#include "stdio.h"
void main()
{
   int i;
   for(i=1;i<=5;i++)
   {
          if(i%2==0)
          {
                continue;  //結束當次,繼續下一次
          }
          printf("□");
   }
   
   //i=1 2 3 4 5 6
   □□□
}
技術分享

技術分享

五、break

在for,while,do-while,switch中遇到break跳出當前循環。

技術分享
#include "stdio.h"
void main()
{
   int i;
   for(i=1;i<=5;i++)
   {
          if(i%2==0)
          {
                break;  //結束當前循環
          }
          printf("□");
   }  
}
技術分享

在無條件循環中退出

技術分享
#include "stdio.h"
void main()
{
    int i=1,s=0;
    while(1)
    {
        s=s+i;
        i++;
        if(i>100) break;
    }
    printf("%d",s);
}
技術分享

C語言 第五章 循環結構