作者eddie780217 (Eddie Yang)
看板Army-Sir
標題Re: [問題] 95年計概36題
時間Mon Feb 1 14:55:49 2010
※ 引述《chevalierxd (イカロス)》之銘言:
: 36.下列為一程式片段:
: i = 0;
: while i <= 100 do
: i = i + 3;
: 執行上述程式片段後i 的值為何?
: A 100 B 300 C 99 D 102
: 這種題目我都搞不太懂 他是要我累加 還是直接代@@
: 我以為他要我累加 我就從0加到100 變300..
: 結果發現是要我代= =a 但直接代100是103...
: 請問要怎解?
i = 0; //初始化i 也就是把i設成0
while i <= 100 do //i假如等於小於100則
i = i + 3; //i就等於i+3
跑一次後i = 3;
又再進入一次while迴圈
i就一直累加6,9,12........99
當i為99時此時i還是小於100
故再跑一次迴圈 i再+3=102
此時102已經大於100
故不進入迴圈 跳出
得解
補充一下:
在程式中一個等號"="和兩個等號"=="是不一樣的,一個等號代表"設值"的意思
,例如:i = i + 3;就是把i + 3設定給i,兩個等號就和我們平常在運算時的"等於"
是一樣的。不好意思這有點難解釋= =
有錯請指正 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.26.161.197
1F:推 chevalierxd:請問<=100是指小於100嘛? 02/01 15:28
2F:推 xleacigma:< 小於 = 等於 包括i=100 02/01 15:30
3F:推 chevalierxd:那怎知道他說的I條件是前面的I還是後面的I?? 02/01 15:32
4F:→ chevalierxd:前後都有i 有些題目說的是後面的i 搞得我好亂= = 02/01 15:32
5F:推 brian90191:一開始先設定i=0,再來進到while迴圈去跑不用再管i=0 02/01 15:34
6F:推 xleacigma:看成 初始值→while(條件)→{運算}→while(條件)→運算 02/01 15:35
7F:→ xleacigma:其實while後面的語法會加上一個{ }來包式子 但單行時可 02/01 15:36
8F:→ xleacigma:省略..所以看成while(條件){i=i+3;} 算完的新i再跳回開 02/01 15:36
9F:→ xleacigma:頭的while裡做條件判定 02/01 15:36
10F:→ brian90191:你只要想像它小於100就一直進去+3直到不滿足條件為止 02/01 15:37
※ 編輯: eddie780217 來自: 114.26.161.197 (02/01 15:46)
11F:→ xleacigma:C會是線性的..會有前後i的問題比較容易發生在for loop的 02/01 15:37
12F:→ xleacigma:i++或是++i..不過看起來預官考的沒這麼深所以不用追究 02/01 15:38
13F:→ xleacigma:注意是小於等於喔..所以如果今天運算變成i=i+2結果還是 02/01 15:38
14F:→ xleacigma:會是102 02/01 15:38
15F:推 chevalierxd:感謝~~ 02/01 15:39
16F:推 KeySabre:等號左邊當容器--變數,右邊就是要放什麼值進去這個容器 02/01 18:17