打印嵌套循环时遇到问题

Having issues with printing a nested loop

我正在尝试打印一个嵌套循环,它将打印两个岛并根据输入内容进行缩放。目标是用感叹号 (!) 构成左岛,用星号 (*) 对角线,用问号构成右岛,用波浪线 (~) 构成海洋。对我的代码的任何评论都会有所帮助。

我正在尝试做的事情的例子。

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*~~?~

尝试以下操作:

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("?");
}