首个Java程序输出不正确

时间:2011-09-05 17:23:38

标签: java

对于非常愚蠢的问题感到抱歉,我正在学习一门新语言并使用此代码:

public class Exercise01 {
    int i;
    char c;

    public static void main(String[] args) {

        Exercise01 E = new Exercise01();
        System.out.println("i = " + E.i);
        System.out.println("c = [" + E.c + "]");
    }
}
/* Output:
i = 0
c = [
*/

为什么输出不会产生“]”字符?它与Unicode有关吗?

PostEdited:变量E.c未初始化用于实验目的。

6 个答案:

答案 0 :(得分:6)

可能是你的程序输出到的地方,控制台或窗口,被U + 0000字符混淆,这是E.c的值。

它适用于我。

初始化E.c并重试。

答案 1 :(得分:5)

答案 2 :(得分:4)

您正在尝试打印空字符,因为char c不需要初始化。即\0有趣的是,您无法轻松复制和粘贴此字符,因为大多数C代码将此视为字符串标记的结尾。

我在运行代码时看到]

尝试使用

更改代码
char c = '?';

给我输出

i = 0
c = [?]

重现此问题的一种方法是在unix上运行

java Main | more

输出

i = 0
c = [

答案 3 :(得分:1)

可能与E.c未初始化为任何事实

的事实有关

答案 4 :(得分:1)

我认为这是因为c未初始化,因此保持\0,即“行尾”。因此,println会打印到行尾并且不会打印您的]

答案 5 :(得分:0)

您应该初始化 char C 以及 int i 。良好的代码实践:一旦声明变量,初始化变量很重要!