Итак, я работал над этой программой Java, где компьютер спрашивает пользователя, хочет ли он знать квадрат числа. Если ответ пользователя «Y» или «y», компьютер запрашивает у пользователя номер, который он хочет, он хочет знать квадрат и печатает квадрат числа. Затем компьютер спрашивает пользователя, хочет ли он знать квадрат другого номера. Если ответ «Y» или «y», компьютер берет номер и печатает квадрат. Пользователь снова спрашивает, хочет ли он знать квадрат другого номера. Как это продолжается.Проблема с оценкой ввода пользователем
Я также написал код для случаев, когда ответ пользователя отрицательный или ни положительный, ни отрицательный. Таким образом, я имел в виду случаи, когда ответ пользователя «N» или «n». Эта программа попадает в проблему где-то и не работает от A до Z так, как я ее хочу. Смотрите, когда я запускаю код, компьютер спрашивает меня, хочу ли я знать квадрат числа, и я вхожу в «y». Затем мне задают номер, который я хочу знать. Я ввожу номер, и компьютер печатает его квадрат. Затем меня спрашивают, хочу ли я знать квадрат другого номера. Я вхожу в «y». Затем меня спрашивают номер, который я хочу знать на квадрат, и я ввожу число. Компьютер печатает квадрат номера. Затем программа спрашивает, хочу ли я знать квадрат другого числа и просто заканчивается, тогда как он должен был взять мой ответ. Я работаю почти 16-17 часов, пытаясь найти ошибку, но я не мог. Не могли бы вы, возможно, проверить код и сказать мне, где я ошибся? Благодарю.
Это код:
package looppracticea;
import java.util.Scanner;
public class LoopPracticeA {
public static void main(String[] args) {
Scanner geek = new Scanner(System.in);
Scanner geek2 = new Scanner(System.in);
long taken_number, taken_number2;
String answer, answer2, answer_not_recognized, if_answer_is_no;
answer_not_recognized = "You didn't enter any of the recognized answers.";
if_answer_is_no = "'Kay. Whatever.";
System.out.println("Do you want to know the square of a number? (Y/N)");
answer = geek.nextLine();
if (answer.equals("Y") || answer.equals("y")) {
System.out.println("The number you want to know the square of is:");
taken_number = geek.nextLong();
System.out.println("That number squared is " + taken_number * taken_number + ".");
System.out.println("Do you want to know the square of another number? (Y/N)");
answer2 = geek2.nextLine();
switch (answer2) {
case "N":
System.out.println(if_answer_is_no);
break;
case "n":
System.out.println(if_answer_is_no);
break;
case "Y":
while (answer2.equals("Y")) {
System.out.println("The number you want to know the square of is:");
taken_number2 = geek2.nextLong();
System.out.println("That number squared is " + taken_number2 * taken_number2 + ".");
System.out.println("Do you want to know the square of another number? (Y/N)");
answer2 = geek2.nextLine();
}
break;
case "y":
while (answer2.equals("y")) {
System.out.println("The number you want to know the square of is:");
taken_number2 = geek2.nextLong();
System.out.println("That number squared is " + taken_number2 * taken_number2 + ".");
System.out.println("Do you want to know the square of another number? (Y/N)");
answer2 = geek2.nextLine();
}
break;
default:
System.out.println(answer_not_recognized);
break;
}
} else if (answer.equals("N") || answer.equals("n")) {
System.out.println(if_answer_is_no);
} else {
System.out.println();
System.out.println(answer_not_recognized);
}
}
}
ли вы не публикуете это точно такой же вопрос несколько минут назад? – PakkuDon
Почему вы задаете один и тот же вопрос повторно? –
Поскольку предыдущее издание было плохо сконструировано. Не могли бы вы любезно ответить на вопрос? – user3590394