Я новичок в java, и я работал над этим как немного совершенным. Предполагается, что это простой калькулятор. Я знаю, что есть, вероятно, лучшие/более эффективные способы сделать это, но это не то, что я ищу. Я столкнулся с небольшой проблемой при использовании switch
, чтобы выбрать, какая операция будет запущена. В основном, каждый раз, когда я запускаю код, он выбирает правильный код для запуска (если введенный String
«+», он добавит double
s), как всегда ему всегда кажется, что он запускает код default
(который печатает «Команда не распознана».). Если я удалю код default
, он отлично работает (конечно, если пользователь вводит неизвестную команду, он даст ошибку), и я мог бы легко это сделать, но то, что я действительно хочу, - это способ иметь код по умолчанию и знать, почему он не работает таким образом. Пожалуйста, помогите. Спасибо.Java-переключатель всегда запускает код по умолчанию
import java.util.Scanner;
public class App {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
double v1 = scan.nextDouble();
double v2;
double v3;
scan.nextLine();
while(1<2){
String op = scan.nextLine();
switch(op){
case "+":
v2 = scan.nextDouble();
v1 = v2 + v1;
System.out.println("="+v1);
break;
case "-":
v2 = scan.nextDouble();
v1 = v2 - v1;
System.out.println("="+v1);
break;
case "*":
v2 = scan.nextDouble();
v1 = v2 * v1;
System.out.println("="+v1);
break;
case "/":
v2 = scan.nextDouble();
v1 = v1/v2;
System.out.println("="+v1);
break;
case "^":
v2 = scan.nextDouble();
v3 = v1;
for(int i = 1;i<v2;i++){
v1 = v1*v3;
}
System.out.println("="+v1);
break;
case "%":
v2 = scan.nextDouble();
v1 = (v1/100)*v2;
System.out.println("="+v1);
break;
default:
System.out.println("Command not recognized.");
}
}
}
}
Выход есть что-то вроде этого:
5
*
5
=25.0
Command not recognized.
Можете ли вы опубликовать ввод, также согласованный с выходом? –
Входные данные были первыми тремя строками в консоли (5, *, 5). Фактический вывод, напечатанный программой art последние два. –
. Что вы здесь пытаетесь: 'while (1 <2) {'? – Bubletan