2021年11月14日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 266 count

複文{}: 1つしか文を書けない場所に複数の文を書きたい

Written By: 川俣 晶連絡先

この章のテーマ §

 1つしか文を書けない場所に複数の文を書くための複文(ブロック/Blocks)の機能を学びます。シンプルですが、ソースコードを高機能かつ分かりやすくする切り札です。

前提知識 §

Console.Writeメソッド, for文, if文, 変数の基礎

解説 §

 C#の文法には、「一つの文だけを相手に機能する文」が多くあります。

 例えば、if文は後続する1つの文だけを条件によって実行します。

 しかし、1つの文だけという制約はあまり嬉しいものではありません。

 そういう場合には、複文(ブロック)を使います。

 複文は複数の文を波括弧{}で囲うことで、擬似的に全体を1つの文と見なす機能です。

 ですから、A; B;というコードは2つの文からなりなっていますが、波括弧で書こうと{A;B}となって、これは全体が1つの文と見なされます。

 サンプルソースを見ると、

if (i == 0) Console.WriteLine("A"); Console.WriteLine("B");

 の場合、iが0の時に実行するのはConsole.WriteLine("A");だけです。Console.WriteLine("B");はif文とは関係なくいつも実行されます。

 しかし、

if (i == 0) { Console.WriteLine("C"); Console.WriteLine("D"); }

 の場合、全体が囲われているので、{ Console.WriteLine("C"); Console.WriteLine("D"); }全体がif文の影響下にあります。ですから、iが0以外なら1つも実行されません。

罠の数々 §

  • 複文には変数のスコープを区切るという重要な機能がもう1つある。変数の寿命を制御する重要な機能なので、スコープを学んだときに思い出してみよう。
  • 複文はネストできる。つまり複文の中に複文があってもよい。しかし意味がない複文の階層はソースコードが読みにくくなるだけなのでやめておこう。しかし意味があったらいくらネストしても良い

参考リンク §

ステートメント (Blocks参照)

サンプルソース: blocks §

for (int i = 0; i < 2; i++)

{

    Console.WriteLine($"i={i}の場合");

    if (i == 0) Console.WriteLine("A"); Console.WriteLine("B");

    if (i == 0) { Console.WriteLine("C"); Console.WriteLine("D"); }

}

実行結果 §

i=0の場合

A

B

C

D

i=1の場合

B

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 上記サンプルソースにはif文の他にもう一箇所複文を使っている箇所がある。for文にも複文が使われている。理由は何だろうか。

[[解答]]

Facebook

COOL C# CREW Series

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2021年
11月
15日
Mainメソッド : 全ての始まりのメソッド
3days 5 count
total 325 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2021年
11月
12日
型の基礎: 全てのデータには型がある
3days 9 count
total 197 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20211114105944
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.