Невозможно вернуть результат из System.in InputStreamReader

У меня проблемы просто вернуть строку цвета. По какой-то причине он не вернет число. Не уверен, что мне нужно вставить конец оператора if с помощью else, но я чувствую, что оператор catch для if.

Основной класс

package edu.computer.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Computer {
  public Computer() {
  }

  public String getProcessor() {
    InputStreamReader in = new InputStreamReader(System.in);
    BufferedReader keyboard = new BufferedReader(in);
    String num = null;
    System.out.println("Type red to print red or blue to print blue");
    try {
      num = keyboard.readLine();
      if (num.equals("red"))
        num = "red";
      if (num.equals("blue"))
        num = "blue";

    } catch (IOException e) {
      System.out.println("Exception occured!");
    }
    return num;

  }
}

Тестовый класс

package edu.computer.test;

public class ComputerTester {
  public static void main(String[] args) {
    Computer a = new Computer();
    a.getProcessor();
  }
}

1 ответ

Решение

Ваш пример кода работает просто отлично. Я добавил следующую строку в ваш тест, и он напечатал цвет, как и ожидалось:

public static void main(String[] args) {
  Computer a = new Computer();
  System.out.println(a.getProcessor());
}

Печать blue или же red по мере необходимости.

Другие вопросы по тегам