簡體   English   中英

怎么做,為這段代碼做while while循環?

[英]How to do, Do while loop for this code?

我有這個java代碼:

public class Ages {
public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);  

    int value = 0;
    String name;
    int age;



        System.out.print("Hey, what's your name? ");
        name = keyboard.next();
        System.out.println();

        System.out.print("Ok, " + name + ", how old are you? ");
        age = keyboard.nextInt();
        System.out.println();

           do{
            if(age < 16){
            System.out.println("You can't visit in the museum, " + name + ".");

            if(age < 18);
                 System.out.println("You can't visit in the park, " + name + ".");
            }
            if (age < 25){
                System.out.println("You can't visit if you have a car, " + name + ".");
            }
            if (age >= 25){
                System.out.println("You can do anything, " + 
                    name + ".");

            }
            while(age > 300);
            System.out.println("It's not correct..Try Again, " + name + 
             ".");


            }
}

我需要那個用戶寫錯了答案,他會再次提出問題“你多大了?”,並且在他再次嘗試之后......我的goona做了什么? 謝謝您的幫助!! :)

1)你應該使用這個條件: if (age >= 25 && age <= 300){而不是if (age >= 25){

否則即使age超過300且你不想這樣做,情況也是true

while(age > 300);

2)如果值不正確,您還應允許用戶輸入新輸入。

age = keyboard.nextInt(); 應該在循環中。

3)你應該允許循環完成。
在while語句中,您可以指定需要來自用戶的新輸入的條件:

while (age > 300)

這給出了代碼(未測試):

  int age;
  do{
    age = keyboard.nextInt();

    if(age < 16){
        System.out.println("You can't visit in the museum, " + name + ".");
    }
    else if(age < 18){
         System.out.println("You can't visit in the park, " + name + ".");
    }
    else if (age < 25){
        System.out.println("You can't visit if you have a car, " + name + ".");
    }

    if (age >= 25 && age <= 300){
        System.out.println("You can do anything, " + 
            name + ".");                
    }
    else{
        System.out.println("It's not correct..Try Again, " + name +  ".");
    }
  }                 
  while (age > 300);

一個 while塊不正確你必須使用:

System.out.println("It's not correct..Try Again, " + name + ".");

do {
    if (age < 16) {
        System.out.println("You can't visit in the museum, " + name + ".");

        if (age < 18);
        System.out.println("You can't visit in the park, " + name + ".");
    }
    if (age < 25) {
        System.out.println("You can't visit if you have a car, " + name + ".");
    }
    if (age >= 25) {
        System.out.println("You can do anything, "
                + name + ".");

    }
    //while(age > 300);<<----------wrong position 

    System.out.println("It's not correct..Try Again, " + name + ".");

} while (age > 300);//<<----------correct position 

雖然條件接縫不正確,但您必須檢查最小和最大年齡,而不僅僅是最大,因此您可以使用:

 while (age < minAge || age > maxAge );

因此,如果年齡小於那么最小或大,那么最大重復再次

如果不執行三個這個:

if (age < 18);//<<----------------note the ; it mean your if is end
    System.out.println("You can't visit in the park, " + name + ".");

相反,你可以讀取循環內的年齡:

System.out.print("Hey, what's your name? ");
name = keyboard.next();
System.out.println();

do {

    System.out.print("Ok, " + name + ", how old are you? ");
    age = keyboard.nextInt();
    System.out.println();
    ....
}while(..);

希望這可以讓您了解您的問題。

試試這個,請:

public class Ages {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

        int value = 0;
        int age;

        System.out.print("Hey, what's your name? ");
        String name = keyboard.next();
        System.out.println();

        while(true) {
            System.out.print("Ok, " + name + ", how old are you? ");
            age = keyboard.nextInt();
            System.out.println();
            if (age <= 300) {
                break;
            }
            System.out.println("It's not correct..Try Again, " + name +
            ".");
        }

        if(age < 16) {
            System.out.println("You can't visit in the museum, " + name + ".");
        }
        if(age < 18){
            System.out.println("You can't visit in the park, " + name + ".");
        }
        if (age < 25){
            System.out.println("You can't visit if you have a car, " + name + ".");
        }
        if (age >= 25){
            System.out.println("You can do anything, " +
                name + ".");

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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