복습 - 제어 흐름
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 39번째.
챌린지
processArray라는 이름의 메서드를 만들고 다음 두 인수를 받도록 하세요:
- 혼합된 유형(Integer, String 또는 Double)을 포함하는 1차원 Object 배열(
data) - 처리 유형을 나타내는 String(
type): "sum" 또는 "find"
해결 방법에는 다음 개념이 포함되어야 합니다:
- 메서드 시작 부분에서 입력을 검증하기 위해 가드 절을 사용하세요
- instanceof 패턴 매칭을 사용하여 유형을 확인하고 캐스팅하세요(예:
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 컴파일러