Вы можете сделать это следующим образом
System.out.println("Would you like to calculate?");
System.out.println("1- Square root/n2- Logarithm\n3- Factorial");
Scanner scan = new Scanner(System.in);
int choice = scan.nextInt();
if (choice == 1) {
System.out.println("Enter the number to square root: ");
double x = scan.nextDouble();
System.out.println(Math.sqrt(x));
} else if (choice == 2) {
System.out.println("Enter the number to log: ");
double x = scan.nextDouble();
System.out.println(Math.log(x));
} else if (choice == 3) {
System.out.println("Enter the number to do factorial: ");
double x = scan.nextDouble();
System.out.println(factorial(x));
} else {
System.out.println("Invalid choice");
}
Также вы сравнили String с символом =. Это неверно. Мы используем метод .equal () для сравнения строк в java. например,
if (choice.equal("Factorial");
ИЛИ Если вы хотите сделать это, как ваш подход. Тогда у вас есть некоторые синтаксические ошибки. Строка 2 должна быть новой строкой () вместо новой выборки (). Кроме того, почему вы сделали массив строк? Правильный код будет таким:
System.out.println("Would you like to calculate?");
String choice = scan.nextString();
if (choice.equal("Square root")) {
System.out.println("Enter the number to square root: ");
double x = scan.nextDouble();
System.out.println(Math.sqrt(x));
} else if (choice.equal("Logarithm")) {
System.out.println("Enter the number to log: ");
double x = scan.nextDouble();
System.out.println(Math.log(x));
} else if (choice.equal("Factorial") {
System.out.println("Enter the number to do factorial: ");
double x = scan.nextDouble();
System.out.println(factorial(x));
}