[問題] 前置/後置 遞增 一問
==================以下為正確程式碼
int i=100;
if (i=0)
{
printf("no\n");
printf("i=%d\n",++i);
}
else
{
printf("no\n");
printf("i=%d\n",i++);
}
printf("i=%d\n",i);
此程式碼輸出結果為 no 0 1
=========================
以下是我的個人分析...(錯誤的分析)
if已經指定為0 所以跑if那段(並非else)
輸出no 之後因為前置i 所以 輸出為1
接著跑最後一行 輸出1
請問我邏輯哪裡錯了...是在前置/後置的部份
還是指定之後 if-else呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.164.61
→
04/20 11:52, , 1F
04/20 11:52, 1F
→
04/20 11:56, , 2F
04/20 11:56, 2F
→
04/20 11:56, , 3F
04/20 11:56, 3F
不好意思 我不是很懂為什麼會跑到else
煩請解釋 謝謝:)
※ 編輯: super0517 來自: 203.68.164.61 (04/20 11:58)
→
04/20 11:58, , 4F
04/20 11:58, 4F
→
04/20 11:58, , 5F
04/20 11:58, 5F
已更正 謝
※ 編輯: super0517 來自: 203.68.164.61 (04/20 11:59)
→
04/20 11:59, , 6F
04/20 11:59, 6F
→
04/20 12:00, , 7F
04/20 12:00, 7F
但是就這麼說的話....例如這題(無誤):
int i=200;
if (i=100)
printf("i is 100");
else
printf("i is 200");
為什麼他的輸出結果會是 i is 100
不是會跳到else @@? (大亂)
推
04/20 12:00, , 8F
04/20 12:00, 8F
→
04/20 12:02, , 9F
04/20 12:02, 9F
推
04/20 12:02, , 10F
04/20 12:02, 10F
※ 編輯: super0517 來自: 203.68.164.61 (04/20 12:06)
→
04/20 12:06, , 11F
04/20 12:06, 11F
→
04/20 12:07, , 12F
04/20 12:07, 12F
推
04/20 12:09, , 13F
04/20 12:09, 13F
→
04/20 12:09, , 14F
04/20 12:09, 14F
推
04/20 12:15, , 15F
04/20 12:15, 15F
推
04/20 12:16, , 16F
04/20 12:16, 16F
→
04/20 12:17, , 17F
04/20 12:17, 17F
我還是不知道為什麼跑ELSE 可以更白話嗎...不好意思=___="
※ 編輯: super0517 來自: 203.68.164.61 (04/20 12:18)
→
04/20 12:18, , 18F
04/20 12:18, 18F
意思是說 只有 if判斷式裡指定0 的才會跳到else?
假若if判斷式指定為非0 都會繼續運算if{}? 是嗎@@?
※ 編輯: super0517 來自: 203.68.164.61 (04/20 12:20)
→
04/20 12:21, , 19F
04/20 12:21, 19F
→
04/20 12:21, , 20F
04/20 12:21, 20F
→
04/20 12:21, , 21F
04/20 12:21, 21F
好的 謝謝:) 豁然開朗的感覺 好開心!!! 來去看一下!!!
※ 編輯: super0517 來自: 203.68.164.61 (04/20 12:22)
→
04/20 12:23, , 22F
04/20 12:23, 22F
這問題我想了3天了 哈哈 結果是漏了這項知識!! 哈哈 好開心~~~謝謝大家:)
※ 編輯: super0517 來自: 203.68.164.61 (04/20 12:27)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章