2014-01-15 33 views
0

好吧,我一直在处理一个小例子,它涉及到在java中创建一个13x13个人“q”的正方形。我知道我需要两个循环才能创建一个列和一个行,但我在创建列时遇到问题。使用字符串创建一个具有n长度,n高度的正方形使用字符串

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String q = "q"; 

    for(int i = 0; i<26; i++){ 
     for(int x = 0; x<13; x++){ 
      System.out.print(q); 
      x++; 
     } 
     i++; 
     System.out.println(); 
    } 

} 
+1

如果在每次迭代之后递增它们,为什么不使用'for'循环呢?另外,你有什么“问题”? – OnlyThenDidIReckonMyCurse

+0

循环与印刷无关。你会得到相同的输出,如果你写'while(i <13 * 13){System.out.print(q);我++; }'。在内循环之后你缺少'System.out.println()'。 – Maroun

+1

@ᴍarounᴍaroun和'if(i%13 == 0)System.out.println();'在该循环中添加,然后我们用单个循环解决问题!或者,%13 == 12可能是最好的,放在其他打印后 – Cruncher

回答

1

只需在外环循环中使用System.out.println()即可。

while(i<13){ 
    while(x<13){ 
     System.out.print(q); 
     x++; 
    } 
    i++; 
    System.out.println(); 
} 

正如评论中提到的,你最好使用for这个循环。

+0

我改进了我的代码,for循环确实改变了它。但是,它将新行作为循环的一部分,有效地提供了一半所需的qs。除了必须将外循环数乘以2以外,还有更有效的方法吗?那就是说要保持我<13而不是我<26? – Sythe

+0

发表你的新代码,因为你刚才所说的没有太大意义:s –

+0

对,对不起。将原始帖子编辑为当前代码。 – Sythe

1

之前(或之后,它刚刚被成为内而结束括号,外而结束括号之间)的i++放于一个System.out.println();

这将插入一行每行后都会打破。

相关问题