Можете ли вы иметь логическое выражение повторить в цикле while? - PullRequest
0 голосов
/ 13 мая 2019

Я нашел способ заставить мою программу распознавать, является ли что-то палиндромом или нет, но если это не так, программа не будет повторяться.

У меня уже есть логический раздел этого, реализованный до моего предоставленного кода.

Изначально было задано выражение if, которое нужно заменить на while, но что-то вроде while (! Yespalin (потенциальноp)) тоже не работает

Scanner scan = new Scanner(System.in);      
String potentialp;
System.out.println("Please enter a potential palindrome: ");
potentialp = scan.nextLine();

while (yespalin(potentialp))
{
    System.out.println("That string is a palindrome");  
}
while (!yespalin(potentialp))
    System.out.println("That string is not a palindrome, please enter another: ");  
    potentialp = scan.nextLine();
}   

Я хочу, чтобы программа повторялась, еслине палиндром

1 Ответ

0 голосов
/ 13 мая 2019

Для начала я вижу, что вы пропустили "{" в ваше второе время.

Однако я не понимаю, зачем вам нужно 2 цикла while.

Если вы читаете ваш код построчно, вы можете понять, почему первый цикл выводит «правильную» строку. Однако, если вы введете неверный палиндром, он никогда не войдет в первый цикл, поэтому не напечатает нужное предложение.

Вы хотите 1 цикл, который закончится, если вы введете правильное значение, если я не ошибаюсь Который будет выглядеть примерно так:

Scanner scan = new Scanner(System.in);      
String potentialp;
System.out.println("Please enter a potential palindrome: ");
potentialp = scan.nextLine();

while (!yespalin(potentialp)){
    System.out.println("That string is not a palindrome, please enter another: ");  
    potentialp = scan.nextLine();  
}
System.out.println("That string is a palindrome"); 

Надеюсь, это было полезно.

...