C++的運算 有附程式碼 請詳細運算一下
請問一下喔
程式如下
為什麼 印出來是 679 這三個數字呢
可不可以 一個個詳細的說明
我有點不太懂:(
程式如下
#include <iostream>
using namespace std;
int main ()
{
int a=5;
switch(a){
default:
case 1:cout<<++a;
case 2:cout<<a++ +1 ;
case 3:cout<<a+2;break;
case 4:cout<<a+3;break;
}
system("pause");
return 0;
}
case 1:cout<<++a; ←這個是印六
case 2:cout<
CASE 2 有點看不懂
CASE 3 是不是 做完BREAK 就不做了
感謝Julie
那我再問一個問題喔
請問一下
cout << a++ 是先印出A的數值在+1
cout << ++a 是先+1在印a
cott << a+1 直接印出(a+1) 這個數
應該是這樣吧.......
那如果舉個例子
cout << ++a +2 是先+2 再加1嗎 ?
2 個解答
- 7 年前最佳解答
> cout << ++a +2 是先+2 再加1嗎 ?
Yes and No
假設a=6, 執行cout << ++a +2之後會印出9這數字, 但並不代表a=9。
因為+2的運算並不會改變a的數值, 只有++a會, 所以a=7
印出的數值是+2 +1
但a只有加1
> case 2:cout<<a++ +1 ;
概念同上, 有趣的是這個用了a++而不是++a,
所以印出來是a+1的數值, 但這"+1"的運算不會改變a的值
改變a的值是a++這段指令。
假設a=6, 程式因為a+1而印出7, 而a暫時沒有改變
當這行程序結束的時候, a++令a=7。
- 7 年前
遇到break才會跳出,否則會一直做下去。
case2 會印出a++ +1 :a是後加加所以先印出a+1然後a值再加一,所以是印7
但是a值會變成7
case3的時候因為a變成7了所以印出來是9
參考資料: myself