public static void main (String[] args)
{
do {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a string: ");
String sentence = keyboard.nextLine();
System.out.print("Enter a letter: ");
String fullLetter = keyboard.nextLine();
char letter = fullLetter.charAt(0);
keyboard.nextLine();
int amount = 0;
for (int i = 0; i < sentence.length(); i++) {
char ch = sentence.charAt(i);
if (ch == letter) {
amount++;
}
}
System.out.println(letter + " appears " + amount + " times in " + sentence);
System.out.print("Continue? ");
String decide = keyboard.nextLine();
} while (decide.equals("yes"));
}
}
Я хочу, чтобы пользователь ввел либо «да», либо «нет» в конце цикла, затем я хочу, чтобы этот ввод определял, будет ли программа повторяться снова или нет. В настоящее время последняя строка моего кода не работает. Я огляделась и не знаю, что мне делать, чтобы это исправить.
4 ответа
Вам нужно объявить вашу переменную decide
вне цикла и инициализировать внутри:
String decide;
do {
//do something ...
decide = keyboard.nextLine();
} while (decide.equals("yes"));
Вы должны определить решение вашей переменной вне цикла:
String decide = null
do {
....
decide = keyboard.nextLine();
} while (decide.equals("yes"));
Вы должны объявить строку description вне цикла do / while, в противном случае она является локальной переменной цикла do / while и не может быть доступна для части тестирования do. Просто используя
public static void main(String[] args) {
String decide;
do {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a string: ");
String sentence = keyboard.nextLine();
System.out.print("Enter a letter: ");
String fullLetter = keyboard.nextLine();
char letter = fullLetter.charAt(0);
keyboard.nextLine();
int amount = 0;
for (int i = 0; i < sentence.length(); i++) {
char ch = sentence.charAt(i);
if (ch == letter) {
amount++;
}
}
System.out.println(letter + " appears " + amount + " times in "
+ sentence);
System.out.print("Continue? ");
decide = keyboard.nextLine();
} while (decide.equals("yes"));
}
Решит вашу проблему.
Вы должны использовать keyboard.next()
для чтения String
вместо keyboard.nextLine()
next()
читает только слово, nextLine()
читает всю строку, включая Enter, поэтому никогда не будет равно "да"
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.