[英]How do I loop until the user makes correct input on Java?
import java.util.Scanner;
public class SecretWord {
public static void main( String[] args ) {
Scanner input = new Scanner(System.in);
String secret = "Please", guess;
System.out.print( "Secret word?" );
guess = input.next();
for (int i = 0; guess.equals(secret); i++) {
if( guess.equals(secret) ) {
System.out.println("enter");
} else {
System.out.println( "try again" );
}
}
}
}
我如何做到這一點,以便當用戶輸入“ Please”以外的其他內容時,它會要求他/她重試? 然后,用戶將必須輸入“ Please”,結束循環,並打印“ Enter”。
請改用while循環,
while (!guess.equals(secret)) {
if( guess.equals(secret) ) {
System.out.println( "enter" );
} else {
System.out.println( "try again" ); {
System.out.println("Secret word")
guess = input.next();
}
}
除此之外,for循環具有以下語法,
for (before, conditionsIsTrue, end)
這意味着對您而言,循環將是這樣,
for(int i=0; if(guess.equals(secret)), i++)
由於此條件永遠不會在第一個循環中成立,因此您根本不會進入for循環。
您還可以使用在后期測試中使用的do-while,
do {
System.out.println("Secret word")
guess = input.next();
if( guess.equals(secret) ) {
System.out.println( "enter" );
} else {
System.out.println( "try again" ); {
}
} while (!guess.equals(secret));
您必須在循環內移動input.next()
,我建議使用while
不是for
循環:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String secret = "Please", guess = "";
System.out.print("Secret word?");
while (!guess.equals(secret)) {
guess = input.next();
if (guess.equals(secret)) {
System.out.println("enter");
} else {
System.out.println("try again");
}
}
}
嘗試這個:
import java.util.Scanner;
public class SecretWord {
public static void main( String[] args ) {
Scanner input = new Scanner(System.in);
String secret = "Please", guess;
while(true){
System.out.print( "Secret word?" );
guess = input.next();
if(guess.equals(secret)){
System.out.println("Enter");
break;
}else{
System.out.println("Try Agian");
}
}
}
}
這是鼓勵使用“ do-while”構造的經典示例之一(有極少數)。 但是似乎您明確想要使用“ for”,因此以下是使用“ for”的代碼:
import java.util.Scanner;
public class SecretWord {
public static void main( String[] args ) {
Scanner input = new Scanner(System.in);
String secret = "Please", guess = null ;
for ( ; !secret.equals(guess); ) {
System.out.print( "Secret word?" );
guess = input.next();
if( guess.equals(secret) ) {
System.out.println( "enter" );
}
else {
System.out.println( "try again" ); {
}
}}}}
我希望這行得通。 現在使用'do-while'實現:
import java.util.Scanner;
public class ModifiedSecretWord {
public static void main( String[] args ) {
Scanner input = new Scanner(System.in);
String secret = "Please", guess;
do{
System.out.print( "Secret word?" );
guess = input.next();
}
while( !guess.equals(secret) ) ;
System.out.println("Shazam!!!");
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.