0

下面的一段代码给了我很长的一条鱼:

<#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< (....up to 43 fish )


{
 for (int i=0; i<10; i++)
 { 

 for (int j=0; j<10; j++)
 { 
    if ( (i*10+j) < 43) 
    {
    System.out.print(" <#><");
    }

    else{
    System.out.print("     ");

   }

我试图弄清楚如何将鱼限制在 10 x 10 的范围内,所以它看起来更像这样:

<#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#><
<#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#><
<#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#><
<#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#>< <#><
<#>< <#>< <#>< <#><
4

5 回答 5

3
for (int i=0; i<43; i++)
{ 
    if (i > 0 && i%10 == 0) 
        System.out.println();
    System.out.print(" <#><");
}

i % 10是模运算。它除以i10返回除法的其余部分。示例: if iis 17then 结果将是7因为17 / 10 = 1with rest 7。剩下的只有在 is 时0才会发生。i0,10,20,30,40

并且是一项额外的检查,以防止在静止时i > 0从循环开始打印额外的行i00 / 10 = rest 0

&&如果所有条件都必须是true
您可以将多个条件放在一起。||如果其中一个必须是,您可以将多个条件放在一起true。)

于 2012-07-10T05:01:06.203 回答
1

System.out.println();在外循环的末尾添加一个。

于 2012-07-10T05:01:49.187 回答
1

您缺少的是 System.out.println 。println 是指打印行。打印后光标移动到下一行。

  for (int i=0; i<10; i++) { 
      for (int j=0; j<10; j++) { 
          if ( (i*10+j) < 43)  {
             System.out.print(" <#><");
          }
          else {
             System.out.println("     ");
          }
      }
  }
于 2012-07-10T05:08:20.287 回答
1

试试这个....

public class hi {

    public static void main(String[] args){
        int i=0;
        while (i<43){

              for (int j=0 ; j<10 ; j++){

               System.out.print(" <#><");

               }
              System.out.println();
              i++;
             }
    }
}
于 2012-07-10T05:14:16.503 回答
1

在同一代码中,以下修改将产生预期的输出。

for (int i=0; i<10; i++)
{ 
 for (int j=0; j<10; j++)
 { 
    if ( (i*10+j) < 43) 
    {
       System.out.print(" <#><");
    }

    else
    {
       System.exit(0);//if fishes exceeds 47 Exit
    }
 }
 System.out.println();//for new line after 10 fishes
}
于 2012-07-10T07:17:42.200 回答