【问题标题】:Bluej/Java loop?Bluej/Java 循环?
【发布时间】:2017-01-06 17:05:26
【问题描述】:

我还是 Java 新手,我正在 Bluej 中学习。我的班级正在做一个有趣的小程序来学习,我想知道......我怎样才能让程序通过脚本(或重新启动)本身?对不起,如果你得到这个很多,但我一直在寻找一个多小时的答案,但没有成功。我仍然需要它用于其他一些程序,哈哈

代码如下:

import java.util.Scanner;
public class TriangleFirst
{

    public static void main (String [] args) {
          System.out.println ("\f");
          Scanner SC = new Scanner(System.in);
          int numbstars;


          System.out.println ("How large would you like your (sideways) pyramid to be? (insert a number)");
          numbstars = SC.nextInt();
        for (int i=1; i<= numbstars; i++) {
                for (int j=0; j < i; j++) {
                    System.out.print ("*");
                }
                //generate a new line
                System.out.println ("");
            }

        for (int i= numbstars-1; i>=0; i--) {
                for (int j=0; j < i; j++) {
                    System.out.print ("*");

                }
                //generate a new line
                System.out.println ("");
            }
    }
}

【问题讨论】:

  • Java != JavaScript
  • “我怎样才能让程序通过脚本(或重新启动)本身?”是什么意思?你根本不知道如何运行你的程序吗?你想让它无限循环而不退出吗?

标签: java bluej


【解决方案1】:

我不完全确定我是否理解您的问题,但如果您只想让程序在到达末尾后继续运行,那么您需要做的就是插入一个 while 循环。

import java.util.Scanner;
public class TriangleFirst {

    public static void main (String [] args) {
        while(true) {
            //your code goes here
        }
    }
}

【讨论】:

    【解决方案2】:

    这里的想法是一遍又一遍地做某事,直到你被告知否则。你已经在for 循环中接触到了这个想法。 while 循环是另一种需要了解的循环。 while 循环的定义如下:

      while(condition is true) {
        // do something
     }
    

    它将一遍又一遍地执行它里面的所有代码,直到你通过break;强制它停止或者条件是false(改变一个布尔值,一个数字低于0,无论你做什么你的条件)。 while 循环的更高级形式是do while 循环。 do while 看起来像这样:

      do {
        // do something
     } while(condition is true);
    

    这里的区别在于do while 总是会执行一次。之后,它将在决定是否再次运行之前评估条件。 while 循环可能永远不会执行!这一切都取决于条件。

    现在,根据您的情况,您可以进行方法调用。所以:

    do {
      // stuff
     } while (askTheUser()); //askTheUser returns a Boolean.
    

    甚至

    do {
      // stuff
     } while (getNumber() > n);
    

    (注意,while 的工作方式相同。)

    无论最终结果如何,都应该是布尔值。您的星数打印和用户输入的星数可以是单独的方法调用(通常最好将逻辑分离到方法调用中以使调试更容易)。所以...

    while (askUserToPlayAgain()) {
        int n = getInput();
        printStars(n);
    

    }

    应该让您对如何实现它有一个很好的了解。

    【讨论】:

      【解决方案3】:

      要重复一些 Java 代码,请将其包含在 while 循环中。

      do {
          System.out.println("How large …");
          …
      } while (askAgain());
      

      askAgain 是一个单独的方法,应该如下所示:

      public class TriangleFirst {
          Scanner input = new Scanner(System.in);
      
          private boolean askAgain() {
              System.out.println("Again?");
              return input.nextLine().toLowerCase().startsWith("y");
          }
      }
      

      由于您应该只有一个 Scanner 用于输入,请删除 SC 变量并将其替换为 input

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多