Java 必须制作一个带有嵌套while循环的乘法表\三位数的t间距混乱

Java 必须制作一个带有嵌套while循环的乘法表\三位数的t间距混乱,java,Java,打印15乘15的乘法值表。它输出良好,直到10 x 11。然后,由于三位数的值,间距被弄乱了,但我不知道如何修复它。一旦你运行它,你可以看到我的问题。有人能帮忙吗 public class Lab7bMultiplicationTable { public static void main(String[] args) { int first = 1; int x = first; while (x <= 15) {

打印15乘15的乘法值表。它输出良好,直到10 x 11。然后,由于三位数的值,间距被弄乱了,但我不知道如何修复它。一旦你运行它,你可以看到我的问题。有人能帮忙吗

public class Lab7bMultiplicationTable
{
   public static void main(String[] args)
   {
      int first = 1;
      int x = first;

      while (x <= 15)
      {
         int y = first; 

         while (y <= 15) 
         {

         System.out.print(x*y + "\t\t");
         y+=1;
         }

    System.out.println();
    x+=1; 
    }


   }
}      
公共类LAB7B乘法表
{
公共静态void main(字符串[]args)
{
int first=1;
int x=第一;

而(x如果您的输出设备使用的制表符宽度为3,则只有2位数字才可以,而3位数字则错误,这是非常罕见的。输出的标准制表符宽度为8,这就是我们无法复制您的问题的原因

要使数字始终打印正常,请不要使用制表符。而是使用
printf
指定您选择的数字宽度,例如,要处理3位数字,请使用
“%-3d”
,其中
-
使数字左对齐

此外,您的
while
循环可以是简单的
for
循环,因为所有循环逻辑都在同一行,因此更易于阅读

int first = 1;
for (int x = first; x <= 15; x += 1) {
    for (int y = first; y <= 15; y += 1) {
        System.out.printf("%-3d ", x * y);
    }
    System.out.println();
}
然而,当数字右对齐时,这样的表看起来会更好,所以从格式字符串中删除
-
字符

int first = 1;
for (int x = first; x <= 15; x += 1) {
    for (int y = first; y <= 15; y += 1) {
        System.out.printf("%3d ", x * y);
    }
    System.out.println();
}

看起来不错。@shmosel你能试着运行一下吗?在右下角,数字开始变成金字塔形状,而不是我做的统一的矩形,看起来不错。这对我来说也很好。唯一的问题是,说明是使用while循环和转义序列作为间隔,我的老师设法做到了这样做一定有我看不到的方法。有没有方法更改选项卡宽度?如果这会影响任何内容,我将使用jgrasp。@C.domingo尝试在命令提示符下运行代码。它的选项卡宽度应为8。否则,请查看命令提示符窗口中是否设置了选项卡宽度。