Menu
CoddyTech

控制流回顾

本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 39 课,共 59 课。

challenge icon

挑战

创建一个名为 processArray 的方法,它接受两个参数:

  1. 一个包含混合类型(Integer、String 或 Double)的 1D 对象数组(data)
  2. 一个用于指定处理类型的字符串(type</code):"sum" 或 "find"</li></ol><p>你的答案应展示以下概念:</p><ul><li>在方法开头使用守卫子句验证输入</li><li>使用 instanceof 模式匹配来检查和转换类型(例如,<code>if (value instanceof Integer i))
  3. 使用带箭头语法的 switch 表达式(例如,switch (type) -> {)
  4. 使用带标签的循环,并配合 break 或 continue(例如,search: for())
  5. 处理规则:

    • "sum":将所有数值相加(忽略字符串)
    • "find":查找第一个大于 100 的数值

    返回消息应为:

    • 如果数组为 null 或为空:返回 "Invalid input"
    • 如果 type 无效:返回 "Invalid type"
    • 对于 "sum":返回 "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 在线编译器