BZOJ-2190 [SDOI2008]儀仗隊(莫比烏斯反演)
阿新 • • 發佈:2020-11-14
■ if語句
□作用
執行滿足條件的語句
□ if語句的三種形式
▶單行格式if語句
▶多行格式if語句
▶多條件的if語句
▶巢狀if語句
□ 單行格式if語句
if(條件) { 條件滿足執行的語句 }
注意:if條件後面不要加分號
if(條件); { 條件滿足執行的語句 //不管是否符合條件,中括號裡的程式碼都會執行 }
□ 多行格式if語句
if(條件) { 條件滿足執行的語句 } else { 條件不滿足執行的語句 }
□ 多條件的if語句
if(條件1) { 條件1滿足執行的語句 } else if(條件2) { 條件2滿足執行的語句 }else if(條件3) { 條件3滿足執行的語句 } else { 上述條件3都不滿足執行的語句 }
□ 巢狀if語句
if(條件1) { 條件1滿足執行的語句 if(條件4) { 條件4滿足執行的語句 } } else if(條件2) { 條件2滿足執行的語句 } else if(條件3) { 條件3滿足執行的語句 } else { 上述條件3都不滿足執行的語句 }
■ 三目運算子
□ 作用
通過三目運算子實現簡單的判斷
□ 語法
表示式1?表示式2:表示式3
如果表示式1位真,則執行表示式2,並返回表示式2的結果
如果表示式1位假,則執行表示式3,並返回表示式3的結果
int a = 10; int b = 20; int c = 0; c = (a > b ? a : b); //c的值是20 (a < b ? a : b) = 100; //a的值是100,b的值是20
■ switch語句
□ 作用
執行多條件分支語句
□ 語法
switch(表示式) { case 結果1: 執行語句;break; case 結果2: 執行語句;break; case 結果3: 執行語句;break; ... default: 執行語句;break; }
□ 注意
1) case中如果沒有break,那麼程式會一直向下執行
2)switch分支判斷裡,case關鍵字後只能是整型或者字元型
switch (a)
{
case a > 6 && a < 15 : cout << "222" << endl; break; //報錯,必須是整型或字元型
case 10 : cout << "111" << endl; break;
default:break;
}
□ 總結
與if語句比較,switch語句結構清晰,執行效率高,但不可以指定區間,而if語句是可以在條件裡指定區間的