まとめ - 制御フロー
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部。レッスン 39/59。
チャレンジ
processArrayという名前のメソッドを作成します。このメソッドは2つの引数を受け取ります:
- 異なる型(Integer、String、または Double)を含むObjectの1次元配列(
data) - 処理の種類を指定するString(
type):「sum」または「find」
解答では、次の概念を示してください:
- メソッドの開始時にガード節を使用して入力を検証する
- instanceofのパターンマッチングを使用して型の確認とキャストを行う(例:
if (value instanceof Integer i)) - 矢印構文を使用したswitch式を使用する(例:
switch (type) -> {) - breakまたはcontinueを使用するラベル付きループを使用する(例:
search: for())
処理ルール:
- 「sum」:すべての数値を加算する(文字列は無視する)
- 「find」:100より大きい最初の数値を見つける
返すメッセージは次のとおりです:
- 配列がnullまたは空の場合:return "Invalid input"
- typeが無効な場合:return "Invalid type"
- 「sum」の場合:return "Sum: X"
- 「find」の場合:その値の
data内での位置を返す。100より大きい数値がない場合は「Not found」を返す
自分で試してみよう
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static String processArray(Object[] data, String type) {
// ここにコードを書いてください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dataJson = scanner.nextLine();
String type = scanner.nextLine();
Type arrayType = new TypeToken<Object[]>(){}.getType();
Object[] data = new Gson().fromJson(dataJson, arrayType);
System.out.println(processArray(data, type));
}
}ロジックとフローのすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ