Skip to main content

3.2 關於 if 敘述大括號的使用

內容只有一行時可以省略大括號

if...else if...else 的大括號內如果只有一行時,可以省略大括號。

所以前面範例練習的內容可以寫成這樣。

練習:絕對值
#include <iostream>

using namespace std;

int main()
{
    int a;
    
    cin >> a;
    
    if(a<0)
        a = -1*a;
    
    cout << "|a|=" << a << endl;

    return 0;
}
練習:判斷奇、偶數
int a;
cin >> a;

if(a%2==1)
    cout << "奇數" << endl;
else
    cout << "偶數" << endl;

但並不建議同學們這樣做,因為這樣有時會難以閱讀而造成意外的錯誤,不如老老實實的都加上大括號。

例如:下面這段程式碼就很難清楚理解,事實上是有錯誤的。

練習:是否需服兵役
string gender;
cout << "性別(男, 女):";
cin >> gender;

int age;
cout << "年齡:";
cin >> age;

if(gender=="男")
    cout << "你是男生,";
    if(age>=20)
        cout << "需要當兵" << endl;
  	else
        cout << "但是年紀太小,還不用當兵" << endl;
else
    cout << "你是女生,不用當兵" << endl;

兩種常見的大括號使用風格

風格一:左右括號都單獨佔一行

int a;
cin >> a;

if(a%2==1)
{
    cout << "奇數" << endl;
}
else
{
    cout << "偶數" << endl;
}

風格二:左括號放在行末

int a;
cin >> a;

if(a%2==1) {
    cout << "奇數" << endl;
}
else {
    cout << "偶數" << endl;
}

這兩種撰寫風格都很常見,同學們可以自行選擇。唯一的提醒就是 務必要正確的縮排