如果条件满足,我希望我的语句重新执行

时间:2016-07-31 12:52:32

标签: java loops if-statement

我想在这里发生的是让用户输入" start"。如果用户输入启动,程序必须从数组中提供一个随机字,然后要求用户输入" next",当用户输入" next"程序给出另一个随机单词,然后程序要求" next"再次输入等等......你明白了。

这里有一些代码,我认为会产生这种效果,但它所做的只是打印"输入 start 来查看一个很酷的单词" 用户输入"开始" 然后程序什么都不返回。

任何建议都会受到赞赏,如果你能告诉我为什么我的代码会这样做,我会非常感激,因为我可以从中学习。 感谢

这是我写的代码:

   import java.util.Scanner;
import java.util.Random;
public class Words {
    public static void main(String[]args){


        Scanner scan = new Scanner(System.in);
        String words[] = {"Iterate:","Petrichor:"};
        String input = "";

        System.out.println("type *start* to see a cool word");
        input = scan.nextLine();

        while(!input.equals("start")){
        String random = words[new Random().nextInt(words.length)];
        System.out.println(random);
        System.out.println();
        System.out.println("type *next* to see another cool word");
        while(input.equals("next"));
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您希望将输入读取包装在循环中:

import java.util.Scanner;

import java.util.Random;
public class Words {
  public static void main(String[]args){
    Scanner scan = new Scanner(System.in);
    String words[] = {"Iterate","Petrichor"};
    String input = "";

    while ( !input.equals("start") ) {
       System.out.println("type *start* to begin");
       input = scan.nextLine();
    }

    String random = (words[new Random().nextInt(words.length)]);
  }
}

请注意,在您的特定示例中,循环条件适用于您的if语句,因此不需要if语句。

<强>更新

如果你需要在用户输入next时继续运行,你可以将所有内容包装在do .. while循环中,这样它至少会执行一次:

import java.util.Scanner;

import java.util.Random;
public class Words {
   public static void main(String[]args){
      Scanner scan = new Scanner(System.in);
      String words[] = {"Iterate","Petrichor"};
      String input = "";
      do {
         do {
            System.out.println("type *start* to begin");
            input = scan.nextLine();
         } while ( !input.equals("start") );

         String random = (words[new Random().nextInt(words.length)]);
         System.out.println("type *next* to repeat");
         input = scan.nextLine();
      }
   } while ( input.equals("next") );
}