[C#入門]第12回 繰り返し処理 foreach文

はじめに

前回は、for文による繰り返し処理について説明しました。

今回は、foreach文による繰り返し処理について説明します。

目次

  1. foreach文の基本

1.foreach文の基本

はじめに、foreach文の基本書式を以下に示します。

foreach (変数 in コレクション) {
  // 処理
}

foreach文を使用すると、コレクションに入っているデータを変数に1つずつ取り出しながら繰り返し処理を行います。繰り返し処理が終了するのは、コレクションから全ての値を取り出し終わった時です。

以下に foreach文の使用例を示します。

この例は、配列 data から値を1つずつ取り出してコンソールに表示するというものです。

C#におけるforeach文の例
int[] data = { 1, 2, 3, 4, 5 };

foreach (int x in data) {
    Console.WriteLine(x);
}

 

VB.NETの場合は「For Each」というキーワードを使用します。C#のforeach文と同様の動作をします。

VB.NETにおけるSelect文の例
Dim data() As Integer = {1, 2, 3, 4, 5}

For Each x As Integer In data
    Console.WriteLine(x)
Next

 

Javaは、foreach文はありません。代わりに拡張 for を使用します。

拡張 for の書式を以下に示します。

for (変数 : コレクション) {
// 処理
}
Javaにおける拡張for文の例
int data[] = {1, 2, 3, 4, 5};

for (int x : data) {
	System.out.println(x);
}

 

swiftは、foreach文がありません、代わりにfor文を使用します。
for文によるコレクションからの値取得の書式を以下に示します。

for 変数 in コレクション {
// 処理
}
swiftにおけるfor文の例
let data = [1, 2, 3, 4, 5]

for x in data {
    print(x)
}

[C#入門]第11回 反復処理 for文

はじめに

プログラムの中で、何度も同じような処理を繰り返し実行したい場合があります。これを反復処理(または繰り返し処理)と呼びます。

C#で使用できる反復処理には for, foreach, while, do whileなどがあります。

今回は for文 について説明します。

目次

  1. for文の基本

for文の基本

for文は、決められた回数分繰り返したい場合に使用します。

C#におけるfor文の基本構文を以下に示します。

基本構文(C#)
for (初期化式; 繰り返し条件; 変化式) {
 // 繰り返しで実行する処理
}

for文の()内は、以下の3つで構成されています。

  • 1.繰り返し回数を管理する変数の初期化を行う「初期化式」
  • 2.繰り返しを行うかどうかを判断する「繰り返し条件」
  • 3.繰り返し終了後に、繰り返し回数を変化させる「変化式」

以下に、変数 iが 0〜4までの間繰り返す for文の例を示します。

初期化式で、変数 i を宣言し0で初期化しています。

繰り返し処理の中では、変数iを出力しています。最後の } に到達すると、for文の最初に戻り、繰り返し条件が実行されます。このとき、変数 i の値が 5未満(つまり4以下)であれば、変化式を実行して、さらに繰り返し処理を行います。

繰り返し条件が満たされなくなった時、for文を抜けます。

C#におけるfor文の例
for ( int i = 0; i < 5; i++) {
  Console.WriteLine(i);
}

 

VB.NETは、C#と書式が異なります。以下に書式を示します。

カウンタ変数は、C#での初期化式に相当します。終了値は、カウンタ変数の値が幾つになったら終了するのかを指定します。増分はC#の変化式に相当します。増分値を省略した場合は1ずつ増加をします。※書式中の[]は省略できることを意味します。

基本構文(VB.NET)
For カウンタ変数 To 終了値 [Step 増分]
  '繰り返しで実行する処理
Next [カウンタ変数]

以下にVB.NETでのFor文の例を示します。

VB.NETにおけるFor文の例
For I = 0 To 4
  Console.WriteLine(I)
Next I

 

JavaはC#と同じ構文を使用します。

以下にJavaでのfor文の使用例を示します。

Javaにおけるfor文の例
for ( int i = 0; i < 5; i++) {
  Console.WriteLine(i);
}

 

続いてSwiftですが、キーワードはforですが、構文が異なりますので以下に示します。

基本構文(Swift)
for 変数 in 繰り返しの範囲 {
  繰り返し実行する処理
}

「繰り返しの範囲」は、「…」や「..<」といった演算子を使用します。

「1…5」とした場合は1〜5までの5回繰り返し、「1..<5」とした場合は1〜5未満の範囲で繰り返しを行います。

以下は1〜5までの5回繰り返し処理を行う例です。

Swiftにおけるfor文の例
for i in 1...5 {
    print(i)
}

[C#入門]第10回 分岐処理 switch文

はじめに

前回は、if文による条件分岐について説明しました。

今回は、switch文による分岐処理について説明します。

目次

  1. switch文の基本
  2. データ型による分岐

1.switch文の基本

はじめに、switch文の基本書式を以下に示します。

switch (変数) {
  case 値1:
    処理; // 変数と値1が一致した時に実行する処理
    break;
  case 値2:
    処理; // 変数と値2が一致した時に実行する処理
    break;

    :

  default:
    処理; // 変数がどの値とも一致しなかった場合に実行する処理
    break;
}

switch文を使用すると、変数に入っている値と case の後ろに書かれた値が一致した箇所に書かれている命令を実行します。どの値とも一致しない場合には default に書かれた処理を実行します。

また、switchの中で使用できる変数は、文字列型か整数型の変数のみです。

breakというキーワードはswitch文を抜けるために使用するものです。

 

以下に switch文の使用例を示します。

この switch文の例では、変数の値が0の場合に「明治」を、1の場合に「大正」、2の場合に「昭和」を、3の場合に「平成」を出力します。

変数xの値は2ですので、「昭和」が出力されます。

C#におけるswitch文の例
var data = "";
var x = 2;

switch (x) {
    case 0:
        data = "明治";
        break;
    case 1:
        data = "大正";
        break;
    case 2:
        data = "昭和";
        break;
    case 3:
        data = "平成";
        break;
    default:
        data = "対象なし";
        break;
}

Console.WriteLine(data);

 

VB.NETの場合は switchではなく「select」というキーワードを使用します。C#のswitch文と同様の動作をします。breakキーワードは不要です。

VB.NETにおけるSelect文の例
Dim data = ""
Dim x = 3

Select Case x
    Case 0
        data = "明治"
    Case 1
        data = "大正"
    Case 2
        data = "昭和"
    Case 3
        data = "平成"
    Case Else
        data = "該当なし"
End Select

Console.WriteLine(data)

 

Javaは、C#と同一の書式を使用します。

Javaにおけるswitch文の例
String data = "";
nt x = 2;
		
switch (x) {
    case 0:
        data = "明治";
        break;
    case 1:
        data = "大正";
        break;
    case 2:
        data = "昭和";
        break;
    case 3:
        data = "平成";
        break;
    default:
        data = "対象なし";
        break;
}
	
System.out.println(data);

 

swiftは、C#同様にswitch文を使用しますが、変数に()は必要ありません。またbreakキーワードも不要です。

swiftにおけるswitch文の例
var data = ""
let x = 2

switch x {
case 0:
    data = "明治"
case 1:
    data = "大正"
case 2:
    data = "昭和"
case 3:
    data = "平成"
default:
    data = "該当なし"
}

print(data)

2.データ型による分岐

C# 7では、switch文のcase機能が拡張され、case データ型 変数 のように記述すると、データ型と一致する場合にキャストして変数に代入できることができるようになりました。

以下に例を示します。

11行目は変数 obj のデータ型が int かを調べ、intである場合に変数 x に objの値を受け取ります。

14行目は、11行目と同様で obj のデータ型が doubleかを調べ、doubleである場合に変数 x に値を受け取ります。

17行目は、obj のデータ型が string かを調べ、stringである場合に変数 s に値を受け取ります。さらに when の後の条件式が満たす場合に、処理が実行されます。

C#のswitch文でデータ型で分岐する例
static void Main(string[] args) {
    object data ="サンプル";

    switchSample(data);
}

static void switchSample(object obj) {
    string msg = "";

    switch (obj) {
        case int x:
            msg = $"int型:{x}";
            break;
        case double y:
            msg = $"double型:{y}";
            break;
        case string s when s.Length > 2:
            msg = $"string型:{s}";
            break;
        default:
            msg = "対象なし";
            break;
    }
}