Не выводит в одну строку
код:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int a = 0;
int b = 0;
String operation = null;
System.out.print(" ");
Calculator calc = new Calculator();
calc.calculate(5, 2, "+");
}
public static String calc(String input) {
return null;
}
static class Calculator {
Scanner scanner = new Scanner(System.in);
void calculate(int a, int b, String operation) {
if (a >= 0 || b <= 10)
a = scanner.nextInt();
operation = scanner.next();
b = scanner.nextInt();
if (operation.equals("+")) {
System.out.println(a + b);
}
if (operation.equals("-")) {
System.out.println(a - b);
}
if (operation.equals("*")) {
System.out.println(a * b);
}
if (operation.equals("/")) {
System.out.println(a / b);
} else {
System.out.println("исключение");
}
}
}
}
Anonymous #3475010
4 уровень
Помогите пожалуйста решить задачу с калькулятором, что тут может быть не так?
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #3303140
17 июля, 21:09
Смотря что ты хотел сделать вообще.
Например, эти строки не делают вообще ничего.
Для чего нужно условие Какой логике оно следует? Почему от него зависит только ввод числа a? Зачем в методе calculate вообще нужны аргументы, если ты потом a и b вводишь с консоли?
Словом, вопросов куда больше, чем ответов. Какое вообще было задание, что и где должно происходить?
Что ты имеешь в виду под "Не выводит в одну строку"? Ты хочешь, чтобы ты ввёл "2 + 3", а тебе рядом в этой же строке вывелось "5"? Так нельзя сделать, это два разных потока данных. То, что они у тебя отображаются вперемешку, не означает, что это одно и то же. Они как минимум будут на разных строках всегда.
+1
Anonymous #3475010
17 июля, 21:20
Да у меня тут каша, пока решаю главную задачу
Input:
1 + 2
Output:
3
должно быть так
у меня вводиться
1
+
2
3
0
Anonymous #3303140
17 июля, 21:26
Как то, что ты вводишь, вообще зависит от программы? Это же ввод.
Вводи в одну строку, в чём проблема?
0
Anonymous #3475010
17 июля, 21:29
Выдает ошибку
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Main$Calculator.calculate(Main.java:19)
at Main.main(Main.java:9)
0
Anonymous #3303140
17 июля, 21:37
Всё работает.
Ты в IDE решаешь или на сайте / в приложении? Если не в IDE, то там может быть ошибка связана с тем, что Input data это не настоящий поток ввода, а его эмуляция.
Если в IDE, то можно подебажить и посмотреть, что он считывает, а что не считывает. Но у тебя либо уже код поменялся, либо ты вводишь что-то другое.
Вот скриншот с твоим кодом без малейших изменений. Перед двойкой тот пробел, который ты зачем-то выводишь в мейне, но на ввод он не влияет.
![]()
![](https://cdn.javarush.com/images/comment/1d258210-d22e-4387-ad55-c8bf8563f4e6/original.png)
0
Anonymous #3475010
17 июля, 21:41
по условию должен выполнить на IDEA 17
0
Anonymous #3475010
17 июля, 21:43
Может из-за этого
0
Anonymous #3475010
17 июля, 21:56
извиняюсь, нужно было через пробел, 3 день только познаю java
0