public static void main(String[] args) {
double a, b, result = 0;
String oper;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter first number:");
a = scanner.nextDouble();
System.out.println("Enter operator:");
oper = scanner.next();
System.out.println("Enter second number:");
b = scanner.nextDouble();
switch (oper){
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
result = a / b;
break...
Мне показалось, что я могу так ввести знак операции в систему, подобно числу. А как нужно?oper у тебя имеет тип Scanner. Ты пытаешься сравнить Scanner с оператором. Это ж гениально!
Ну всё, я понял, что к операторам приравнивать нельзя. А как мне тогда распознавать операторы вводимые юзером?Как по мне так лучше с нуля книгу почитать, а не отдельным статьями
Он мне не нужен. Мне нужно чтобы Scanner распознавал математические операторы, а if работал как нужно!Тебе из Scanner нужно получить текст.
Я так же рассуждаю. Поэтому я и написал такой код. Но всё же я не понимаю в чём моя ошибка...мдэ) Почему ты не хочешь слушать добрых советов?
Sсanner в данном случае, класс, с помощью которого ты будешь ВВОДИТЬ данные в консоль. Цифры и операторы. Вообще все, что ты собираешься вводить, будет вводится через сканнер(в данном случае)
Не подскажешь как можно в таком случае определить математический оператор?Оператор == сравнивает два значения.
Операторы не являются значениями, значит, их нельзя сравнивать
public static void main(String[] args) {
double a, b, result = 0;
String oper;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter first number:");
a = scanner.nextDouble();
System.out.println("Enter operator:");
oper = scanner.next();
System.out.println("Enter second number:");
b = scanner.nextDouble();
switch (oper){
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
result = a / b;
break;
default:
System.out.println("Unknown operator");
break;
}
System.out.println("Result: " + result);
}
Надеюсь сегодня ночью разберу. Спасибо!Java:public static void main(String[] args) { double a, b, result = 0; String oper; Scanner scanner = new Scanner(System.in); System.out.println("Enter first number:"); a = scanner.nextDouble(); System.out.println("Enter operator:"); oper = scanner.next(); System.out.println("Enter second number:"); b = scanner.nextDouble(); switch (oper){ case "+": result = a + b; break; case "-": result = a - b; break; case "*": result = a * b; break; case "/": result = a / b; break; default: System.out.println("Unknown operator"); break; } System.out.println("Result: " + result); }
К примеру. Можно сделать лучше, но это задание уже для тебя)
==
) символ оператора, введенный с клавиатуры (oper
) с самим оператором (+
...), а такого делать нельзя. Если ввел символ, то и сравнивай с символом оператора, как в примере от @Thunder.if(oper == "+") {
// Делаем сложение
}
Доброе утро, люди в 2018-м еще пишут на джаве, нужно использовать дореволюционный синтаксис и сравнивать строки через equals()...Например, так:
Java:if(oper == "+") { // Делаем сложение }
def player_wins(self, char):
for a,b,c in [
(0,1,2), (3,4,5), (6,7,8), # Победы по горизонтали
(0,3,6), (1,4,7), (2,5,8), # Победы по вертикали
(0,4,8), (2,4,6) # Победы по диагонали
]:
if char == self.board[a] == self.board[b] == self.board[c]:
return True
А так по мне, Хаскелл самый красочный. Вдобавок, его можно легко распараллелитьНу да... Как по мне Python нагляднее и удобнее.
Python:def player_wins(self, char): for a,b,c in [ (0,1,2), (3,4,5), (6,7,8), # Победы по горизонтали (0,3,6), (1,4,7), (2,5,8), # Победы по вертикали (0,4,8), (2,4,6) # Победы по диагонали ]: if char == self.board[a] == self.board[b] == self.board[c]: return True
Хотя у каждого языка свои задачи.