Вот исходник:
Код | try { PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, "Cp866"), true); BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "Cp866")); int num1, num2, summ; String s; pw.print("Введите первое число: "); s = br.readLine(); num1 = new Integer(new String(s)); pw.print("Введите второе число: "); s = br.readLine(); num2 = new Integer(new String(s)); summ = num1 + num2; pw.println("Ну, короче, сумма равна: " + summ); } catch (Exception ex) { System.out.println("There were an error"); }
|
При работе программы по логике, он должен сначала запрашивать ввод, а на самом деле сначала подряд вводятся 2 числа, и только потом выводятся сообщения, т.е. получается вместо
Введите первое число: 2 Введите второе число: 2 Ну, короче, сумма равна: 4
На самом деле вот как
2 2 Введите первое число: Введите второе число: Ну короче сумма равна 4
Добавлено через 2 минуты и 21 секунду Мда, все разобрался, так как это идет работа с буферами, тут нужно flush использовать, вот так:
Код | try { PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, "Cp866"), true); BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "Cp866")); int num1, num2, summ; String s; pw.print("Введите первое число: "); pw.flush(); s = br.readLine(); num1 = new Integer(new String(s)); pw.print("Введите второе число: "); pw.flush(); s = br.readLine(); num2 = new Integer(new String(s)); summ = num1 + num2; pw.println("Ну, короче, сумма равна: " + summ); } catch (Exception ex) { System.out.println("There were an error"); }
|
|