java - 是什么导致我的循环仅在第一次迭代中忽略此 "\t"?

标签 java system.out

出于某种原因,我的循环仅在 for 循环的第一次迭代后输出“\t”。 这是我的循环的代码:

input = -1;
private String[] types = {"none", "vanilla", "hazelnut", "peppermint", "mocha", "caramel"};
while ( (input < 0) || (input > (types.length - 1)) ){ //gets user's latte flavor input
        System.out.println("Enter the number corresponding to the latte type you would like:");
        for ( int i = 0; i < types.length; i++ ){
            if ( i <= (types.length - 2) ){ //prints two options per line
                System.out.println(i + ": " + types[i] + "\t" + (i + 1) + ": " + types[i + 1]);
            }
            else if ( i == (types.length - 1) ){
                System.out.println(i + ": " + types[i]);
            }
            else{ //does nothing on odd indices
            }
            i++;
        }
        input = keyboard.nextInt();
    }

输出如下:

Enter the number corresponding to the latte type you would like:
0: none     1: vanilla
2: hazelnut     3: peppermint
4: mocha        5: caramel

正如我们所看到的,“1: vanilla”的间距与其他行的间距不同。然而,我的 Tea 类代码可以正常工作:

input = -1;
private String[] types = {"white", "green", "oolong", "black", "pu-erh", "camomille"};
while ( (input < 0) || (input > (types.length - 1)) ){ //gets user's tea flavor input
        System.out.println("Enter the number corresponding to the tea type you would like:");
        for ( int i = 0; i < types.length; i++ ){
            if ( i <= (types.length - 2) ){ //prints two options per line
                System.out.println(i + ": " + types[i] + "\t" + (i + 1) + ": " + types[i + 1]);
            }
            else if ( i == (types.length - 1) ){
                System.out.println(i + ": " + types[i]);
            }
            else{ //does nothing on odd indices
            }
            i++;
        }
        input = keyboard.nextInt();
    }

输出如下:

Enter the number corresponding to the tea type you would like:
0: white    1: green
2: oolong   3: black
4: pu-erh   5: camomille

是什么导致我的 Latte 循环(我的 Espresso 循环也遇到这个间距问题)的输出与我的 Tea 循环不同?感谢您帮助我理解这种行为!

最佳答案

嗯,TAB 确实在那里。请注意,0: none 比您发布的其他示例短一个字符。因此,您按 Tab 键切换到较早的制表位。

关于java - 是什么导致我的循环仅在第一次迭代中忽略此 "\t"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34307453/

相关文章:

java - Java中的参数化@Interface注解

java - 插入可连接实体的数据始终为空 - playframework

java - 智能垃圾收集?

java - 如何为 System.out 制作记录器

java - 谁管理 System.in/System.out 的打开/关闭?

java - JAXB 将 byte[] 写入和读取到 xml - 不同的值

java - 将输出流改回 system.out

java - Java中System.out的类型是什么?

java - 通过套接字发送 System.out

java - 在 Java 中绘制静态图像的最快方法