Каждый раз, когда я ввожу выбор из списка опций, он просто говорит мне снова вводить выбор, он должен делать это только тогда, когда пользователь вводит что-то, что не является вариантом.В то время как проблемы с циклом?
У меня возникла такая же проблема с циклом while для параметров «да» и «нет», но после исправления я не вижу различий между этим и областью, где у меня все еще есть проблема, кроме дополнительных параметров.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testing.tests;
import java.util.Scanner;
/**
*
* @author andyoppenheimer
*/
public class TestingTests {
static Scanner sc = new Scanner(System.in);
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String start_end;
String test_run = null;
int name_num = 0;
int LOOP_1 = 0;
int LOOP_2 = 0;
while (LOOP_1 == 0) {
System.out.println("Do you want to continue, yes or no?");
System.out.print("----->: ");
start_end = sc.next();
if ("yes".equals(start_end)) {
LOOP_1 = 1;
}
if ("no".equals(start_end)) {
LOOP_1 = 1;
System.exit(0);
}
if (!"no".equals(start_end) & !"yes".equals(start_end)) {
LOOP_1 = 0;
}
}
**
while (LOOP_2 == 0) {
System.out.println("Please pick your test to run.");
System.out.println("population");
System.out.println("income");
System.out.println("password");
System.out.println("randomize");
System.out.print("----->: ");
test_run = sc.next();
if (!"population".equals(test_run) && !"income".equals(test_run) && !"password".equals(test_run) && !"randomize".equals(test_run)) {
LOOP_2 = 0;
}
if ("population".equals(test_run) & "income".equals(test_run) & "password".equals(test_run) & "randomize".equals(test_run)) {
LOOP_2 = 1;
}
**
}
if ("population".equals(test_run)) {
}
if ("income".equals(test_run)) {
}
if ("password".equals(test_run)) {
}
if ("randomize".equals(test_run)) {
System.out.println("Enter the number of names that will be randomized.");
System.out.print("----->: ");
name_num = sc.nextInt();
}
}
}
Теперь самое время научиться правильно использовать «отладчик». Запустите некоторые точки останова в разных точках ваших «циклов» и проверьте, какая переменная вызывает проблемы. – Tdorno
Да, отладчик. Поместите некоторые точки останова, и если вы используете == для сравнения строк, замените его на equals(). (Но я не нашел никаких символов со строками в то время, когда этот комментарий был wroten) – alesc3