Для чтения с консоли существует стандартный класс java.util.Scanner, который принимает в качестве параметра поток ввода (потоки отдельная тема, которая пока не предусмотрена в нашем курсе, по желанию любой может изучить ее самостоятельно, тема не сложная и на практике почти не применяется). Поток ввода с консоли можно получить с помощью процедуры System.in.
У класса Scanner есть много методов для чтения данных с консоли, они начинаются с слова "next". пример: nextString(), nextInt(), nextDouble(), которые возвращают соответствующие типы.
Рассморим пример программы, которая считает целые числа, введенные с консоли, пока не будет набрано "calc":
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /* Создаем объект Scanner */ Integer sum = 0; System.out.println("Input integer"); while(true) { String str = scanner.nextLine(); /* Считываем стороку */ if(str.equals("calc")) { /* Проверяем на совпадение со строкой "calc" */ System.out.println("Sum = " + sum); System.exit(0); /* Завершаем программу с кодом 0 (успешно) */ } try { sum += Integer.parseInt(str); /* Преобразовываем строку в число и суммируем */ } catch (NumberFormatException e) { System.out.println("Wrong format"); } } }
Если что не понятно, пишите вопросы.
UPD: В комментариях есть еще один вариант решения (compiler)
Многочисленные вопросами - оптимистично сказано (эти мысли оформлю отдельно).
ОтветитьУдалитьвот еще один пример)
Scanner sc = new Scanner(System.in);
boolean k = true;
String str = "";
int sum = 0;
while(k){
str = sc.nextLine();
if(str.equals("calc")){
k = false;
} else {
sum += Integer.parseInt(str);
}
}
(by compiler)
syso(sum);