Bluej / Java循环?

时间:2017-01-06 17:05:26

标签: java bluej

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

以下是代码:

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 ("");
            }
    }
}

3 个答案:

答案 0 :(得分:1)

我不完全确定我理解你的问题,但是如果你想要做的就是让程序在到达结束时继续运行,那么你需要做的就是插入一个while循环。< / p>

import java.util.Scanner;
public class TriangleFirst {

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

答案 1 :(得分:0)

要重复某些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

答案 2 :(得分:0)

这里的想法是反复做一些事情,直到你被告知。您已经在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);

}

应该让你知道如何实现它。