問題文
解答例
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
int n = scanner.nextInt();
int ballCount = 0;
int strikeCount = 0;
for (int i = 0; i < n; i++) {
String s = scanner.next();
if (s.equals("ball")) {
ballCount++;
if (ballCount >= 4) {
System.out.println("fourball!");
} else {
System.out.println("ball!");
}
} else {
strikeCount++;
if (strikeCount >= 3) {
System.out.println("out!");
} else {
System.out.println("strike!");
}
}
}
}
}
}
補足
特になし。「ストライクが3つたまったとき」と「ボールが4つたまったとき」のみ特殊な処理になるので、そのチェックを優先する必要があるくらいか。
処理のネストが深くなってしまったので、ボールだった時とストライクだった時でそれぞれ関数を作成したほうが見やすかったかもしれない。