簡體   English   中英

在用戶在Java上進行正確輸入之前,如何循環播放?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM