1. 程式人生 > >基於硬體的C(C++)語言程式設計教程11:求解1+2+3+...+100之和

基於硬體的C(C++)語言程式設計教程11:求解1+2+3+...+100之和

本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。

開發環境:Atmel Studio 7.0

硬體平臺:Microchip AVR ATmega168PA

參考教材:C++程式設計(第3版) 譚浩強編著,清華大學出版社

備註:教程僅適合初學者,高手請繞過
 

本文將對教材P70頁的例程3.10、P71頁的例程3.11、P72頁例程進行改進,使之能夠運行於Atmel Studio,例程的功能是求解1+2+3+...+100之和。

一、源程式(改進後)

1、while迴圈:

/*
 *	專案名稱:求解1+2+3+...+100之和
 *	作者:snmplink
 *	建立時間:2018-11-8
 *	備註:
 */ 

#include <avr/io.h>

int main(void)
{
    int i, sum;
	
    while (1) 
    {
        i = 1;
        sum = 0;

        while (i <= 100)
        {
            sum = sum + i;
            i++;
        }		
    }
}

2、do...while迴圈:

/*
 *	專案名稱:求解1+2+3+...+100之和
 *	作者:snmplink
 *	建立時間:2018-11-8
 *	備註:
 */ 

#include <avr/io.h>

int main(void)
{
    int i, sum;
	
    while (1) 
    {
        i = 1;
        sum = 0;
			
        do 
        {
            sum = sum + i;
            i++;
        } while (i <= 100);	
    }
}

3、for迴圈:

/*
 *	專案名稱:求解1+2+3+...+100之和
 *	作者:snmplink
 *	建立時間:2018-11-8
 *	備註:
 */ 

#include <avr/io.h>

int main(void)
{
    int i, sum;
	
    while (1) 
    {
        sum = 0;
			
        for (i = 1; i <= 100; i++)
        {
            sum = sum + i;
        }
    }
}

二、執行結果

三、流程圖

1、while迴圈:

2、do...while迴圈:

3、for迴圈:

四、註解

1、while迴圈:

C 語言中 while 迴圈的語法:

while(condition)
{
   statement(s);
}

在這裡,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的程式碼塊。condition 可以是任意的表示式,當為任意非零值時都為 true。當條件為 true 時執行迴圈。 當條件為 false 時,退出迴圈,程式流將繼續執行緊接著迴圈的下一條語句。

2、do...while迴圈:

C 語言中 do...while 迴圈的語法:

do
{
   statement(s);

}while( condition );

請注意,條件表示式出現在迴圈的尾部,所以迴圈中的 statement(s) 會在條件被測試之前至少執行一次。如果條件為真,控制流會跳轉回上面的 do,然後重新執行迴圈中的 statement(s)。這個過程會不斷重複,直到給定條件變為假為止。

3、for迴圈:

C 語言中 for 迴圈的語法:

for ( init; condition; increment )
{
    statement(s);
}

下面是 for 迴圈的控制流:init 會首先被執行,且只會執行一次。這一步允許您宣告並初始化任何迴圈控制變數。您也可以不在這裡寫任何語句,只要有一個分號出現即可。接下來,會判斷 condition。如果為真,則執行迴圈主體。如果為假,則不執行迴圈主體,且控制流會跳轉到緊接著 for 迴圈的下一條語句。在執行完 for 迴圈主體後,控制流會跳回上面的 increment 語句。該語句允許您更新迴圈控制變數。該語句可以留空,只要在條件後有一個分號出現即可。條件再次被判斷。如果為真,則執行迴圈,這個過程會不斷重複(迴圈主體,然後增加步值,再然後重新判斷條件)。在條件變為假時,for 迴圈終止。

 

任何問題,只需在此文章的評論處留言即可,我將盡力解答,不要試圖採用其它的聯絡方式,我一概不理會。

原創性文章,轉載請註明出處CSDN:http://blog.csdn.net/qingwufeiyang12346。