概述變數與運算#
程式在執行過程中,一如我們平時計算往往需要計算紙,總是會需要保存一下運算的過程與結果。當我們宣告一個變數,電腦就會在記憶體當中分配一個空間給予我們使用。今天我們的重點在輸入,因此先簡單介紹整數型別的變數。
還記得 1_2 的範例中,我們輸出 \(87 \times 69\) 以及 \(9487 \times 426 - 89 \times 64 + 87 \times 69\), 我們觀察到後者其實有用到前者的結果,因此我們可以宣告一個變數紀錄前者,如下所示:
第七行的 int n = 87 * 69;
代表我們宣告一個名為 n
的變數,其形態為整數 (int
, integer), 同時我們將其值設為 \(87 \times 69\). 按下 F5 執行它,你會發現結果應該與 1_2 相同。
輸入#
目前為止,我們的程式仍然還是只能輸出固定的內容。接下來,我們看看下面這個程式:
趕緊按下 F5 執行看看,你會發現你的程式停下來等待你輸入一個整數,按下 Enter 之後就會重複你輸入的整數。我們一樣在第七行宣告一個名為 n
的整數變數,只是這回我們沒有賦予它初始值。第八行的 cout
你現在應該頗熟悉惹,值得注意的是第九行的 cin >> n;
, 就是這行程式碼讓我們可以輸入一個值傳遞給 n
.
類題演練#
剛才我們的範例都只有一個變數,那麼如果有多個呢??比如今天我們想寫一個程式,令使用者輸入被除數及除數,而程式輸出商及餘數,可能有些人現在會這樣寫:
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
cout << "Please input two integers a and b: ";
cin >> a;
cin >> b;
cout << "a/b = " << a / b << "\n";
cout << "a%b = " << a % b << "\n";
return 0;
}
這樣其實也沒有錯,只是我們可以合併起來:
注意到 %
是取模運算子,白話文就取餘數;而 C++ 中兩個整數 /
是取其商,且是向 0 取整。關於運算子們的細節,之後會再詳加說明,置紹你現在可以很直覺地使用 +
, -
, *
, /
, %
。
當然你 ,
, <<
, >>
, /
, %
前後的空格都可以省略,每行前面的縮排也非必要,甚至你高興整個 main()
函式可以擠在同一行,只是有夠醜。寫程式排版的習慣風格有很多種,比較新的語言會有官方推薦的,而 C/C++ 就是百花爭放。我自己是偏愛 BSD/Allman Style, 就是大括弧下放,兩兩成對比較有美感喇,VS Code ⇧ Shift + Alt (⌥ Opt) + F 的預設風格也衍生於此。
類題演練#
除惹經典的 \(A + B\) 西元民國紀年轉換各一題,另外有幾題與時間相關可以善用 %
運算子。
- ZeroJudge a002
- ZeroJudge d049
- ZeroJudge d050
- ZeroJudge d060
- ZeroJudge d073
- ZeroJudge d827
- GreenJudge a005
- GreenJudge a006
- GreenJudge a007
Debugger 的使用#
我們每次按下 F5 VS Code 底下的 status bar 都會變色,其實是執行所謂的 Debugger, 可是究竟要怎麼用??試著在 VS Code 中對上面 1.1-2_div_n_mod.cpp
的第十行編號的前面按一下,前面應該會出現一個紅點 (break point), 這時再按下 F5 輸入兩個整數並 Enter, 程式就會停下來惹。這時看到左上會有 VS Code 自動選取的一些變數 Variables, 雙擊可以直接修改其值;左中是 Watch 雙擊可以輸入欲監看的表達式如 a + b
等,右下則是 Call Stack. 此時再按下 F5 程式又會繼續執行下去。
當然我們不可能每次都手動檢查除數是否為零,至於如何讓程式自己檢查??且待下下回分解。
Comments