官术网_书友最值得收藏!

第6課 睡不著就數羊(計數)

睡不著的時候總喜歡數羊,一只羊、兩只羊、三只羊……十只羊……一百只羊……一千只羊……一萬只羊,后面開始跳著數量級數,十萬只羊,一百萬只羊……一億只羊……億后面的是什么數量級來著?

一查閱原來是“兆”,此時公雞打鳴,天亮了。

數羊程序

數羊的過程,就是不斷做加1運算的過程。

運行程序:

     1只羊
     2只羊
     3只羊
     

(1)int count=0:聲明整型變量count,并給它賦初始值0,我們數羊從0開始。

(2)count = count + 1:針對這句代碼,需要細細拆解,這里的兩個count有點不同。

● 首先程序按照順序執(zhí)行int count=0,此時count的值為0。

● 然后程序執(zhí)行count = count + 1,先執(zhí)行右邊count + 1,這個時候count的值為0,那么0+1結果是1

● 最后程序執(zhí)行count = count + 1的賦值部分count =1,這個時候count的值為1。

敲黑板

(3)將4句賦值運算代碼整體分析一番,注意觀察變量值對應的變化。

count = count + 1

count每次計算+1后,又賦值給了自己,所以count不斷地增加1。

(4)cout << count << "只羊" << endl:可以將要輸出的內容通過<<連接起來,還不用擔心不同的數據類型呢。

計數器

嵌套上while (true) { },通過Sleep(1000)system("cls")函數實現(xiàn)計數器。每一秒跳一個數字。

劃重點

int i = 0需要放在循環(huán)的外面,否則每次循環(huán)都會將0賦值給i,這樣輸出就全是0了。

自增的變形

i = i + 1還可以寫成i++。自增有兩種寫法:++可以寫在變量i的后面,例如i++;也可以寫在變量i的前面,例如++i

提出思考

如何探尋i++++i的區(qū)別呢?

在程序中分別運用這兩種方式,觀察程序的運行結果。

輸出結果:

     1
     1

輸出的都1,似乎沒有什么區(qū)別呢。無論是i++還是++j,i和j都實現(xiàn)了自增1。

想要探尋其中的不同,需要換種方式。結合之前說到的計算和賦值先后的問題,進行一番設計。

奇怪的事情發(fā)生了,運行結果竟然是:

     i:1
     n:0
     j:1
     m:1

i、j、m都加1了,n竟然沒有加1,這是為什么呢?接下來要敲黑板了!

敲黑板

i++和++i的區(qū)別:

     i++
     i = 0;
     n = i++;

運行結果是:

     i:1
     n:0

說明i進行了自增,但是n并沒有得到i自增后的結果。

     ++i
     j = 0;
     m = ++j;

運行結果是:

     j:1
     m:1

說明j進行了自增,自增后將值賦給了m。

++在變量前,就先自增再賦值:

++在變量后,就先賦值再自增:

三二一倒計時

探索學習i--和--i。采用i++和++i的學習方法,進行對比學習,將+換成-,換湯不換藥。

鞏固練習

(1)n = 10; m = n--; m = --n;最終輸出的m值是多少?( )

A.10

B.9

C.8

D.7

(2)i = 10; n = i++;j = 11; m = --j;,最終n和m的值相等。( )√( )×

(3)下面的程序一共輸出了4次num,寫出每次輸出時的num值。

①num:__________________________________________________________________

②num:___________________________________________________________________

③num:____________________________________________________________________

④num:___________________________________________________________________

(4)編寫一個循環(huán)程序,數字從0開始,按從小到大的順序,每隔一秒輸出一個偶數。

主站蜘蛛池模板: 杭州市| 临海市| 新沂市| 射阳县| 灵台县| 大同市| 杭州市| 乌兰察布市| 济南市| 湘西| 平泉县| 鸡泽县| 馆陶县| 峨眉山市| 澄城县| 阿克苏市| 墨竹工卡县| 正镶白旗| 广汉市| 扶风县| 凉城县| 子长县| 进贤县| 盘山县| 西林县| 阜阳市| 拉孜县| 朝阳县| 新郑市| 海淀区| 德保县| 特克斯县| 安仁县| 嘉兴市| 刚察县| 霍林郭勒市| 大埔县| 肇州县| 贡嘎县| 黑河市| 北海市|