精華區beta b97902HW 關於我們 聯絡資訊
單:「if」? if() 這個() 裡面是個判斷式,判斷是這種東西就是一翻兩瞪眼,一山不容二虎 只有非0和0。就是TRUE和FALSE。 來比較下面三個程式碼。 (a=1, b=0) #1 if(a) printf("yes"); ---------------------------------- #2 if(b) printf("yes"); ---------------------------------- #3 if(b-a) printf("yes"); ---------------------------------- 這裡#1和#3會印東西, #2則不會印東西。只有#2是0, 其餘都是非0。 再來看個比較特別的。(a=1) #1 if(a/2) printf("yes"); ---------------------------------- 這時候#1會印出yes麻。因為 1/2=0.5 這是非0的。 但是這世界總是充滿驚奇, 偏偏這個/是做整數除法, 也就是小數點會無條件捨去 所以這個#1其實是不會印出東西的 的:「else if」? 若要做比較複雜的判斷, 譬如我們要將學生的成績分等級。 100 -> S 90以上低於100 -> A 80以上低於90 -> B 70以上低於80 -> C 60以上低於50 -> D 其餘的分數 -> E 這時候要怎麼判斷呢!? 直接寫是這樣 if(score==100) printf("S"); if(score>=90 && score<100) printf("A"); if(score>=80 && score< 90) printf("B"); if(score>=70 && score< 80) printf("C"); if(score>=60 && score< 70) printf("D"); if(score<60) printf("E"); 上面這樣做有點醜。有種東西叫做else if () 跟else類似, 但是可以做很多個的判斷 就是有種else不夠用, 你要else之後還要esle的感覺, 直接看個例子 上面那個可以寫成以下這樣: if(score==100) printf("S"); else if(score>=90) printf("A"); else if(score>=80) printf("B"); else if(score>=70) printf("C"); else if(score>=60) printf("D"); else printf("E"); 我們可以把這樣一系列的東西稱為一組。只要有其中一個判斷成立了, 就不會在做下面 的了。 小情歌:「,」? 這小不點似乎戲份太少了, 像是「{}」「;」「()」 都常悼X現。這裡特別給他介紹 免得他心理不平衡。 這東西我們可以稱他為橋樑, 把兩個指令給搭起愛的橋樑, 讓他們手牽手。 int a; int a,b; int b; ===的橋樑===> a=10, b=2; a=1; b=2; 這樣看起來好像是可有可無, 不像是上頭提的那三個那麼的必要, 那這有什麼好處呢 舉個例子: if(a==1) if(a==1) { b=2,c=3,d=4; b=2; c=3; ===的橋樑===> d=4; } 這發生了什麼事!? Oh 親愛的我把code變短了。 由此可見, 愛不止可以縮短人與人之間的距離, 也可以讓你的code更簡短!! -- 這是一首簡單的小情歌。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.199.81
iForests:這標題真是深得我心 09/17 23:06
※ 編輯: godgunman 來自: 140.112.199.81 (09/17 23:09)
sa072686:這樣看來好像只有我沒生教學文 09/17 23:13
ming1053:sa快生一篇吧XD 09/17 23:13
drazi:快快 我可以光速M 09/17 23:14
sa072686:東西都被講完了,難道要我生預習用文嗎XDDD 09/17 23:14
iForests:你可以唱著人們心腸的曲折 09/17 23:14
sa072686:為難了,都被你們 cover 光光,我只好講一些亂七八糟的了 09/17 23:16
godgunman:不然下堂課的給你這樣剛~剛~好~ 09/17 23:20
drazi:XDDD  ̄ ̄ ̄ ̄ 09/17 23:26
iForests:可以教我推文怎麼畫底線嗎? 09/17 23:37
ming1053:樓上明明就會= =  ̄ ̄ ̄ 09/17 23:39
drazi:  ̄ ̄ 對呀對呀~~ 09/17 23:42
godgunman:像是我這行就有底線 09/17 23:44
sa072686:  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 09/17 23:45
sa072686:其實ggm放了一個隱藏的連結,請大家開燈 09/17 23:47
iForests:北七欸 XDDDD 09/17 23:48
dreamoon:那請再發一個關於開燈的教學好了,有很多地方都用的到 09/18 00:12
weijer0905:  ̄ ̄ ̄ ̄ 09/18 00:37
dreamoon:不用特異幫我加底線吧? 09/18 00:40
benck:樓上你破梗了… 09/18 00:43
LoganChien:寫 condition 的時候,注意你用的是 = 還是 == 09/18 00:45
LoganChien:前者是「指派」後者是「等於」是一個很大的差別 09/18 00:46
LoganChien:int a = 0; if (a = 0) { printf("wont print"); } 09/18 00:47
LoganChien:int a = 0; if (a == 0) { printf("will print"); } 09/18 00:47
ming1053:a=x 會 return x ... 09/18 00:49
sa072686:可是我有時會故意這麼寫耶XD 09/18 01:32
sa072686:(a=x)的值會是指派後的a 09/18 01:34
LoganChien:是像這樣嗎? while ((x = fgetc(file)) != EOF) {} 09/18 02:11
LoganChien:教新手這一種寫法會不會反而讓大家搞混? 09/18 02:13
vanillaXleft:絕對不會~因為我根本看不懂ˊˇˋa 09/18 03:08