public class MetricConversion {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
String masses = "null";
String volumes = "null";
String temps = "null";
String lengths = "null";
int answer1 = 0;
String[] options = {"Mass = 1","Temperature = 2","Length = 3","Volume = 4"};
System.out.println("What would you like to convert?");
for(int i = 0;i<options.length;i++)
System.out.println(options[i]);
while(!input.hasNextInt() || input.nextInt() > options.length)
{
String garbage = input.nextLine();
System.out.println("That input is not valid, try again");
}
answer1 = input.nextInt();
input.nextLine();
값 오전 데 문제가 예를 들어 잘못된 입력을 입력하면 오류 메시지가 올바르게 인쇄되지만 올바른 입력을 입력 할 때는 루프를 중단하기 위해 두 번 입력해야합니다. 그러나 while 루프를 || 그것은 단지 가정 한 것과 같은 하나의 가치를 취합니다.사용 || 들어</p> <pre><code>answer1 = input.nextInt(); </code></pre> <p>을 위해</p> <pre><code>while(!input.hasNextInt() || input.nextInt() > options.length) </code></pre> <p>2 개 유효한 입력 대신 1 중임을 루프가 너무 많은 입력을 만드는 반면에
당신의 문'input.nextInt()가'조건부 문에 사용자 입력을 취하고이 같은 루프 조건 내에서 할당 할 수 있습니다 . –
do-while 루프로 while 루프를 변경하고 do-while 블록 내에서 필요한 조건을 만들어야합니다. – Ele
'nextInt() <= options.length' 인 경우 조건부에서 이미 소비했습니다 (그리고 버려졌습니다). 그 값을 어딘가에 저장해야합니다. –