2015-03-04 5 views
0

Я пытаюсь напечатать вложенный цикл, который будет печатать два острова и масштаб в зависимости от ввода. Цель состоит в том, чтобы сделать восклицательные знаки (!), Чтобы сделать левый остров, линию по диагонали звездочек (*), вопросительные знаки, чтобы сделать правильный остров и тильды (~), чтобы сделать океан. Любые комментарии к моему коду были бы полезными.Проблемы с печатью вложенного цикла

Пример того, что я пытаюсь сделать.

Input a size (must be larger than 1): 
5 

0 !!~~* 
1 !!~*~ 
2 ~~*~~ 
3 ~*~?? 
4 *~~?? 

Вот мой код:

import java.util.Scanner; 
public class Two_Islands { 
    public static void main(String[] args) { 
     Scanner kbinput = new Scanner(System.in); 
     //Create Size variable 
     System.out.println("Input a size: "); 
     int n = 0; n = kbinput.nextInt(); 

     for (int r = 0; r < n; r++) { 
      System.out.print(r); 
      for (int c = 0; c < n; c++) { 
       if (r+c == n-1) { 
        System.out.print("*"); 
       } else if (r+c == n-2) { 
        System.out.print("!"); 
       } else if (r+c == n+2) { 
        System.out.print("?"); 
       } else { 
        System.out.print("~"); 
       } 
      } 
      System.out.println(); 
     } 
     kbinput.close(); 
    } 
} 

Вот мой выходной ток.

Input a size: 
5 
0~~~!* 
1~~!*~ 
2~!*~~ 
3!*~~? 
4*~~?~ 

ответ

1

попробуйте следующее:

else if(r+1 < n/2 && c+1 < n/2) 
{ 
    System.out.print("!"); 
} 
else if(r+1 > n-n/2 && c+1 > n-n/2) 
{ 
    System.out.print("?"); 
} 
+0

Я сделал небольшое изменение, что вы мне дали, и это сделало мой код печати красиво. Благодарю. – Cameron

Смежные вопросы