控制流回顾
本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 39 课,共 59 课。
挑战
创建一个名为 processArray 的方法,它接受两个参数:
- 一个包含混合类型(Integer、String 或 Double)的 1D 对象数组(
data) - 一个用于指定处理类型的字符串(
type</code):"sum" 或 "find"</li></ol><p>你的答案应展示以下概念:</p><ul><li>在方法开头使用守卫子句验证输入</li><li>使用 instanceof 模式匹配来检查和转换类型(例如,<code>if (value instanceof Integer i)) - 使用带箭头语法的 switch 表达式(例如,
switch (type) -> {) - 使用带标签的循环,并配合 break 或 continue(例如,
search: for()) - "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 在线编译器