如何使用一个for循环打印不同的字符

时间:2015-10-27 23:58:35

标签: java

我必须在屏幕上打印以下美国国旗:

*****=====
*****=====
*****=====
==========
==========
==========

*****===== 5 *和5 =')(总共6行)

我只允许使用一个for循环,我不能两次使用相同的System.out.print();

目前我有:

for (x = 1; x <= 3; x++) {
    System.out.println("*****=====");
}
for (x = 1; x <= 3; x++) {
    System.out.println("==========");
}

这有效,但它有两个for循环,我无法弄清楚如何只使用一个。

4 个答案:

答案 0 :(得分:5)

这是一个有创意的邀请。

没有循环

    System.out.println(
        "*****=====\n"
       +"*****=====\n"
       +"*****=====\n"
       +"==========\n"
       +"==========\n"
       +"==========");

    System.out.print("*****");
    System.out.println("=====");
    System.out.print("*****=");
    System.out.println("====");
    System.out.println("*****=====");
    System.out.println("==========");
    System.out.print("=======");
    System.out.println("===");
    System.out.print("=");
    System.out.println("=========");

看,没有重复的印刷声明......

有一个循环

    for(int i=0; i<6; i++)
        if(i<3)
            System.out.println("*****=====");
        else
            System.out.println("==========");

或者,开发人员可能会有更多的经验写作

    for(int i=0; i<6; i++)
        System.out.println(i<3? "*****=====": "==========");

或者,获得创造力的奖励积分

String string="*****==========";

for(int i=0, s=0; i<6; i++, s=i/3*5)
    System.out.println(string.substring(s, s+10));

您知道,实现目标的方法不止一种......重要的是您尝试了解这些示例如何将Java语言的功能添加到您自己的工具集中。也许你会创建自己的替代解决方案。

答案 1 :(得分:1)

.co.uk循环中使用if条件:

for

答案 2 :(得分:1)

String firstPart = "*****";
String secondPart = "=====";
for (int i=0; i < 6; i++) {
    System.out.println(firstPart + secondPart);
    if (i == 2) {
        firstPart = "=====";  
    }
}

答案 3 :(得分:0)

for (int x = 1; x <= 6; x++)        
    System.out.println(x<4 ? "*****=====" : "=========");

for(int x = 1; x&lt; = 6; x ++)System.out.println(x&lt; 4?&#34; ***** =====&#34;:&#34 ; ======&#34);

我可以提出最短的时间......