トラック
/
Java
Java
/
演習
/
サッカーの試合レポート
サッカーの試合レポート

サッカーの試合レポート

学習演習

はじめに

switch文

_if/else_文と同じように、switch文を使うと、条件によって実行するコードを切り替え、プログラムの流れを変えることができます。 違うのは、switch文が比較できるのは、プリミティブ型または文字列の式の値を、あらかじめ定義された定数と比べる場合だけという点です。

switch文を使うときには、役に立つキーワードがいくつかあります。

  • switch:このキーワードを使うと、switchの構造を宣言できます。 そのあとには、結果を変えるもとになる式または変数が続きます。
  • case:このキーワードは、結果としてあり得る選択肢を宣言するために使います。
  • break:breakキーワードは、意図した流れの終わりでswitchの実行を止めるのに役立ちます。 これを忘れると、プログラムはそのまま続いてしまい、予想外の結果になることがあります。
  • default:名前のとおり、式の結果がどのcaseにも当てはまらないときの、既定の結果として使います。

もっとも単純な形では、プリミティブ型または文字列の式を判定し、その値をもとに処理を決めます。 たとえば次のようになります。

String direction = getDirection();
switch (direction) {
    case "left":
        goLeft();
        break;
    case "right":
        goRight();
        break;
    default:
        // otherwise
        markTime();
        break;
}

説明

サッカークラブのウェブサイトで、スタッフが試合をレポートできるようにするシステムを開発しています。データはさまざまなソースから受け取り、クリーンアップされたあとに1つのストリームへまとめられます。

1. シャツの番号から選手の説明を出力する

このチームは4-3-3のフォーメーションしか使いません。選手交代を認める1965年のルール変更にも同意していませんし、ましてや選手層の拡大など問題外です。

選手の説明は次のとおりです。

1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"

シャツの番号から選手の説明を出力するstaticなFootballMatchReports.onField()メソッドを実装しましょう。

FootballMatchReports.onField(10);
// => "striker"

2. シャツの番号が公式リストに含まれない場合は"invalid"を出力する

1〜11の範囲外のシャツの番号が処理されたときは'invalid'を返すように、FootballMatchReports.onField()メソッドを修正しましょう。

FootballMatchReports.onField(13);
// => "invalid"
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Java Exercism

サッカーの試合レポートを始める準備はできましたか?

Exercismに登録すれば、26個のコンセプト158個の演習、そして本物の人間によるメンタリングとともに、Javaを学んでマスターできます。すべて無料です。