【问题标题】:airline seat using for航空公司座位用于
【发布时间】:2015-02-28 19:16:31
【问题描述】:

我希望我的结果是这样的,每三个一行

********Flight SA220*******

000

000

000

000

000

但结果是这样的

**** Flight SA220 ****

000000000000000

有什么建议吗??

这是我的java代码

System.out.println("**** Flight "+flightCode[0]+" ****");   
  for(int j=0 ; j<seat[0].length ; j++)
    for (int k=0; k< seat[0][j].length;k++)         
        if (seat[0][j].length%3 == 0)
         System.out.println(seat[0][j][k]);
        else
         System.out.print(seat[0][j][k]);

【问题讨论】:

  • 有时打印一个新行?
  • 这段代码需要一些空格。

标签: java arrays loops javascriptserializer


【解决方案1】:

在您的if 中,您需要将您的seat[0][j].length 更改为k。数组的长度永远不会改变,需要检查索引(循环在数组中的位置)是否为%3

System.out.println("**** Flight "+flightCode[0]+" ****");
for(int j=0 ; j<seat[0].length ; j++){
    for(int k=0; k< seat[0][j].length;k++){     
        if(k%3 == 0){
            System.out.println(seat[0][j][k]);
        }
        else{
            System.out.print(seat[0][j][k]);
        }
    }
}

【讨论】:

  • System.out.println() 在末尾添加一个换行符。 docs.oracle.com/javase/7/docs/api/java/io/…
  • 现在不一致了。这将在一个地方使用println(s),在另一个地方使用print(s+"\n")
  • 我很确定这也会在每个打印的字符后添加一个换行符,这不是本意。
【解决方案2】:

只需在内循环之后的外循环中添加System.out.print("\n");System.out.println();

你可以去掉 if 语句:

System.out.println("**** Flight "+flightCode[0]+" ****");   
for(int j=0 ; j<seat[0][0].length ; j++)
{
    for (int k=0; k< seat[0].length;k++)
        System.out.print(seat[0][k][j]);
    System.out.println();
}

【讨论】:

  • 这给了我一行 5 个而不是每个 3 个
  • @SarahAlofi 啊,你没有提到你的阵列是横向的。立即尝试。
  • @SarahAlofi 如果有效,您介意点赞并接受吗?
  • 我正在尝试投票,但它让我投票需要 15 个声望!
猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 2017-10-13
  • 1970-01-01
  • 2015-04-28
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多