首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java :嵌套循环

Java :嵌套循环
EN

Stack Overflow用户
提问于 2017-10-08 00:13:10
回答 3查看 1.8K关注 0票数 0

我是Java编程语言的新手。

我要求用嵌套循环方法来做这样的事情:

"Masukan Angka“在印尼语中是”输入数字“。因此,如果我们输入9,它将打印出9行*,并且每行*的数量都会减少。

我试着用嵌套循环,这是我做的:

代码是:

代码语言:javascript
运行
复制
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.print("Input your number: ");
        int x = in.nextInt();
        for (int y = x; y > 0; y--) {
            for (int z = 0; z < y; z++)
                System.out.print("*");
            System.out.println();
        }
    }

我如何才能使它在第2-7行中不是用*填充,而是像第一张图片中的例子一样填充空格?

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2017-10-08 00:30:53

@Ringuerel解决方案上稍微扩展一下:

代码语言:javascript
运行
复制
for (int y = x; y > 0; y--) {
    for (int z = 0; z < y; z++) {
        // If it's first or last or first row print "*"
        if( z == 0 || z == y-1 || y == x) {
            System.out.print("*");
        }
        else {
            // Otherwise print " "
            System.out.print(" ");
        }
    }
    System.out.println();
}       
票数 1
EN

Stack Overflow用户

发布于 2017-10-08 00:24:46

在第二个for之后,在打印语句之前添加这个,if( z == 0 || z == y-1 ),对不起,我正在使用我的电话

票数 0
EN

Stack Overflow用户

发布于 2017-10-08 00:33:34

代码语言:javascript
运行
复制
public static void main(String[] args) {
    int amount = 10;
    String c = "*";
    String message = "";
    for (int i = 0; i < amount; i++) {
        message += "*";
        for (int j = 1; j < amount - i; j++) {
            message += c;
        }
        message += "*";
        c = " ";
        System.out.println(message);
        message = "";
    }
    System.out.println("*");

}

如果你愿意,你可以试试这个。我还没有测试过它,但我相当确定它会工作。

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

https://stackoverflow.com/questions/46622357

复制
相关文章

相似问题

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