[解決済み] else ifは1つのキーワードか?
質問
C++の初心者です。以下のような条件文をよく見かけます。
if
statement_0;
else if
statement_1;
質問です。
構文的に
というように
else if
を一つのキーワードとして扱うべきでしょうか?それとも、実際にはネストされた
if
文の中にある
else
のようなものですか?
if
statement_0;
else
if
statement_1;
どのように解決するのですか?
キーワードは1つではありません。
C++ 標準のドラフト
セクション
2.12
キーワード
テーブル
4
の両方をリストアップします。
if
と
else
が別々に存在し
else if
キーワードはありません。 私たちは、よりアクセスしやすい C++ の
キーワード
にアクセスすることで
キーワードに関するcppreferencesのセクション
.
セクションの文法
6.4
の文法もこれを明確にしています。
selection-statement:
if ( condition ) statement
if ( condition ) statement else statement
は
if
で
else if
は
ステートメント
に続いて
else
という用語があります。この項にはこうも書かれています。
[...]サブステートメントにある 選択ステートメント (各サブステートメント、で でなければ の形式で もし ステートメント)は暗黙のうちにブロックスコープを定義しています(3.3)。 選択文の中の部分文が単一の文であり、かつ でなく 複合ステートメント でない場合、元のサブステートメントを含む複合ステートメントに書き直されたようになります。 を含む複合文に書き換えたようなものです。
であり、次のような例を示している。
if (x)
int i;
can be equivalently rewritten as
if (x) {
int i;
}
では、少し拡張した例はどのようにパースされるのでしょうか?
if
statement_0;
else
if
statement_1;
else
if
statement_2 ;
はこのようにパースされます。
if
{
statement_0;
}
else
{
if
{
statement_1;
}
else
{
if
{
statement_2 ;
}
}
}
ノート
また、以下のように判断することができます。
else if
が1つのキーワードになり得ないことを理解することで
キーワード
は
識別子
に対する私の回答にある識別子の文法からわかります。
クラス名を数字で始めることができますか?
にはスペースは許されないということです。
識別子
であり、従って
else if
は単一の
キーワード
である必要はなく、2つの別々の
キーワード
.
関連
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] 一重引用符で囲まれた文字列の一重引用符をエスケープするには
-
[解決済み] PHPの文字列で、シングルクオートとダブルクオートの違いは何ですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み] if-elif-else文を1行にまとめる?
-
[解決済み】Haskell/GHCの`forall`キーワードは何をするのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較