1. 程式人生 > >C語言入門第九篇,迴圈語句

C語言入門第九篇,迴圈語句

迴圈是程式中最常見的一個語句,畢竟計算機每天都在做一些迴圈的工作。下面我們來看看迴圈的語句。

while

while是個很簡單的迴圈,它的語法如下:

while(判斷條件)
執行語句

while的語法類似if,只要滿足while的判斷條件, 執行的語句會一直迴圈。while會先判斷條件是否為真,為真就會執行我們寫的語句,然後再判斷條件是否成立,再執行我們寫的語句,這樣迴圈,直到判斷條件為假。可以試試下面的程式碼:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);//輸入一個整數
while(n--)//這個迴圈輸出hello world,n每次迴圈自減一 { printf("hello world!\n"); } return 0; }

n當自減到零時條件判斷為假,跳出迴圈,程式結束。上面的程式就是讓使用者輸入n,然後根據n的值輸出n個hello world。和if一樣while同樣可以使用邏輯操作符並且迴圈裡面還可以巢狀迴圈。

我們再來看看兩個會在迴圈裡面用到的語句:

break和continue

break是直接終止迴圈。continue是終止本次迴圈。
我們用程式碼來感受一下吧。我們用上面那個例子。上面那個程式,如果你輸入負數的話會無線迴圈。因為當n為0的時候才會判斷為假。非零都為真。所以我們讓程式判斷如果為負數就跳出迴圈。

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);//輸入一個整數
    while(n--)//這個迴圈輸出hello world,n每次迴圈自減一
    {
        if(n<0)
        break;
        printf("hello world!\n");
    }
    return 0;
} 

我們再來看看continue。我們從1輸出到10。但是我們不輸出5這個數:

#include<stdio.h>

int main()
{
    int
n=0; while(n<10) { n++; if(n==5) continue; printf("%d\n",n); } return 0; }

do……while

do……while類似while,我們看看他的用法:

do
執行語句
while(判斷條件);

我們把最上面的程式改為do……while形式:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    do
    {
        printf("hello world!\n");
    }
    while(n--);
    return 0;
} 

是不是感覺和while差不多,只是結構變了一下,while後面多了個分號。但是如果你把這個程式拿去執行就會發現一個問題,當你輸入5時,程式輸出了6個hello wolrd!為什麼呢?因為程式會按照從上到下的順序先執行一次,再做判斷。所以這也是它和while的區別,如果執行的語句必須執行一次則可以選用do……while。

for

for是很重要的一個迴圈。它相對於前面兩個迴圈來說要複雜一些。我們來看看它的用法:

for(初始化語句;條件判斷;調整語句)
執行語句

在執行for的時候,第一次會執行初始化語句,之後都不會執行。接著會執行條件判斷語句,滿足條件則開始迴圈,否則跳出迴圈。調整語句會在每次迴圈完成,條件語句執行之前執行。這三個表示式每一個都是可以省略的。如果省略省略就表示不做相應的操作,省略條件判斷則一直為真,程式無限迴圈。我們來看看將最上面的while改成for的例子吧。

#include<stdio.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("hello world!\n");
    }
    return 0;
} 

我們初始化了一個i,利用i來控制迴圈次數,每次迴圈完,i自加一,大家好好思考一下這個迴圈為什麼和最上面的while實現的功能是一樣的。你就更能明白兩者區別。

值得注意的是,我們是在外面宣告的i這個變數。在c99以後的標準可以在for裡面去宣告和初始化。

for(int i=0;i<n,i++)
{
    printf("hello world!\n");
}

這只是編譯器的採用的標準問題,大家瞭解一下就好了,如果在編譯的時候出錯一定要清楚這個問題。當然for語句同樣適用於break和continue。

總結
迴圈是程式設計必用的一個語句,多寫程式碼才能熟悉這些語句。

練習
1.分別用while和for寫一個程式。程式讓使用者輸入一個n,然後計算1到n的和。
2.編寫一個程式,程式實現使用者輸入兩個數,計算他們的最小公倍數和最大公約數。

相關推薦

C語言門第迴圈語句

迴圈是程式中最常見的一個語句,畢竟計算機每天都在做一些迴圈的工作。下面我們來看看迴圈的語句。 while while是個很簡單的迴圈,它的語法如下: while(判斷條件) 執行語句 while的語法類似if,只要滿足while的判斷條件,

C語言門第if語句練習題答案

試著寫一個讓使用者輸入年份,判斷是否是閏年的程式? #include<stdio.h> int main() { int year; scanf("%d",&

C語言門第if語句

C語言的基本內容我們基本講完了,接下來我們會講到幾乎每一個語言都有的語句。這篇開始希望大家多多將例子中的程式碼,在自己的編譯器中去敲一下,更有助於學習。 if if如同它的英文意思一樣“如果”,表示條件判斷。 看下面的程式碼就明白if的基本用法

C語言門第switch語句

switch是一個不太複雜的語句,我們來看看他的用法吧。 switch(變數) { case 變數1: 執行語句 break; case 變數2: 執行語句 break; …… default: 執行語

C語言門第十七結構體

結構體是C語言很重要的概念,他是資料結構的關鍵。 基本性質 個人理解結構體是一種變數的集合體,他把變數放入了一個結構裡面,形成了一個結構體。我們先看看他的基本語法。 struct 結構體名 { 結構體 } 我們看上面的基本語法可以看出,我們

C語言門第十八字串

字串可能前面會有一點點提及,這裡仔細進行講解。 其實嚴格意義來說,c語言並沒有字串這個變數型別(c語言並不像c++或者其他高階語言有string這個型別),c語言的字串其實就是字元陣列。 我一般使用的方

Android門第之AlertDialog

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

小白用python語言做自動化起步4 迴圈語句--For迴圈語句

While迴圈:在給定的判斷條件為Ture是執行迴圈體,否則退出迴圈體 For迴圈:重複執行語句 巢狀迴圈:可以在While迴圈中巢狀For迴圈 For迴圈:  語法: for 變數 in 範圍:     for迴圈的語句體 end=""表示不換行

C語言】第二章-分支和迴圈語句-2

第2節   在本節中,我會用程式碼實現幾個例子,來供大家深入瞭解和學習分支以及迴圈語句。 查詢   查詢的含義就是在一個表中找出關鍵字與所給值相同的元素,如果找到了則返回下標,找不到則返回-1。   這裡先演示最為普通的查詢,逐個查詢,這是最為普通的演算法思想。

C語言從入門到精通看這一就夠了

影響 內容 當前 位置 replace 雙精度 下標 寄存器變量 一個 No.1 計算機與程序設計語言的關系 計算機系統由硬件系統和軟件系統構成,硬件相當於人類的肉體,而軟件相當於人類的靈魂,如果脫離了靈魂,人類就是一具行屍走肉 No.2 C語言的特點 代碼簡潔,靈活性高

C語言程式設計(練習3:迴圈三大迴圈結構 )

題目: 判斷 101-200 之間有多少個素數,並輸出所有素數及素數的個數 題目分析:質數(prime number)又稱素數,有無限個。一個大於1的自然數,除了1和它本身外,不能整除以其他自然數(質

C語言:字串逆置(迴圈遞迴寫法)

環境:Windows8,Visual Studio 2013 語言:C語言 字串逆置: 將一個一直字串的順序逆序排放保存於同一個空間內,長度,記憶體地址均不改變 方法一:

C語言程式設計(練習1:迴圈三大迴圈結構 )

實驗室程式設計練習作業題: 從鍵盤輸入整數 n,輸出 1+3+5+7+……前 n 項的和。(n<=100) /** \brief 從鍵盤輸入整數 n,輸出 1+3+5+7+……前 n 項的和。

(轉)C語言的條件編譯#if #elif #else #endif、#ifdef #ifndef

n+1 ifdef int pan 不能 ica 推薦 代碼 表達式 有些程序在調試、兼容性、平臺移植等情況下可能想要通過簡單地設置一些參數就生成一個不同的軟件,這當然可以通過變量設置,把所有可能用到的代碼都寫進去,在初始化時配置,但在不同的情況下可能只用到一部分代碼,就

C語言的結構和聯合以及PHP是怎麽實現弱類型的

main 中一 字符 變量類型 type 以及 logs void 例子   C語言的結構(struct):包含多個成員,可能有多種數據類型,並且需要分配幾種類型占用空間之和的空間。   聯合(union):支持多種類型,供使用者使用其中一種數據類型,當然是需要分配其中占用

python門第1 python簡介

內存回收 行數據 pat uid placed 數值 數據 之間 機會 一、python介紹   python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,Guido開始寫Python語言的編譯器。Python這個名字,來自Guido

《數據結構(C語言版)》學習——day1初識數據結構

數據結構1. 什麽是數據結構 一般而言,使用計算機解決一個具體的問題時,大致需要經過以下幾個步驟:① 從具體的問題中抽象出一個適當的數學模型;② 設計一個求解該數學模型的算法;③ 編寫程序,進行測試、調整,直至得到最終的問題解答。 對實際問題建立數學模型的實質是:分析問題,並從中提取操作的對象,並

Java門第:I/O流

進行 spa out tao 基本數據 速度 序列 自帶 緩存對象 [java中的IO流] 分類: 1. 根據流的方向:輸入流和輸出流 根據讀取文字的大小:字節流和字符流; 字節流按字節讀取,讀取中文時會產生亂碼,字符流按字符讀取,通常用於讀取中文。 根據讀取的方式:節

java門第-JQuery;

效果 接下來 AR api insert 傳參數 tex .data ogg 【JQuery語法】 1.使用Jquery必須先導入jquery.x.x.x.js文件 2.JQuery中的選擇器: $("選擇器名稱").方法()。($是JQuery的縮寫,也就是說選

C語言】輸入一個整數求它的原碼反碼補碼值

補碼 while src info idt IV com scan -- 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int m,n,a[10],i=0,y[