首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bluej/Java循环?

Bluej/Java循环?
EN

Stack Overflow用户
提问于 2017-01-06 17:05:26
回答 3查看 841关注 0票数 0

我仍然是Java方面的新手,我在Bluej为课堂学习。我的班正在做一个有趣的小程序学习,我想知道.如何使程序通过脚本(或重新启动)本身?很抱歉,如果你得到了很多,但我已经寻找了一个多小时的答案,但没有成功。我还需要它来做一些其他的程序

下面是代码:

代码语言:javascript
复制
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 ("");
            }
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-06 18:54:24

这里的想法是一遍又一遍地做一些事情,直到别人告诉你不这样做为止。您已经在for循环中了解了这一思想。while循环是另一种需要了解的循环。while循环的定义如下所示:

代码语言:javascript
复制
  while(condition is true) {
    // do something
 }

它将一次又一次地执行它中的所有代码,直到强制它通过break;停止为止,或者条件是false (更改一个布尔值,一个数字低于0,不管你做什么条件)。while循环的一种更先进的形式是do while循环。do while看起来如下所示:

代码语言:javascript
复制
  do {
    // do something
 } while(condition is true);

这里的不同之处在于,do while总是执行一次。在此之后,它将在决定是否再次运行之前对条件进行评估。时间循环可能永远不会执行!这要看情况而定。

现在,针对您的情况,您可以执行一个方法调用。所以:

代码语言:javascript
复制
do {
  // stuff
 } while (askTheUser()); //askTheUser returns a Boolean.

甚至是

代码语言:javascript
复制
do {
  // stuff
 } while (getNumber() > n);

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

不管最终结果是什么,都应该是一个布尔值。星号打印和用户输入的星号可以是单独的方法调用(通常,将逻辑分离为方法调用以简化调试是一个好主意)。所以..。

代码语言:javascript
复制
while (askUserToPlayAgain()) {
    int n = getInput();
    printStars(n);

}

应该让你对如何实现它有一个好的想法。

票数 0
EN

Stack Overflow用户

发布于 2017-01-06 17:26:15

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

代码语言:javascript
复制
import java.util.Scanner;
public class TriangleFirst {

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

Stack Overflow用户

发布于 2017-01-06 17:24:10

若要重复一些Java代码,请将其封装在while循环中。

代码语言:javascript
复制
do {
    System.out.println("How large …");
    …
} while (askAgain());

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

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41510628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档