java中数组的输出int增加整数值

java中数组的输出int增加整数值,java,Java,有人能解释为什么当我输入值时,数组中存储的所有值的输出都增加了9吗 int [] number; int numCounter,num; userInt validate = new userInt(); //set the number of array it can hold number = new int[100]; //set the counter to be equal to zero; numCounter = 0;

有人能解释为什么当我输入值时,数组中存储的所有值的输出都增加了9吗

    int [] number;
    int numCounter,num;

    userInt validate = new userInt();

    //set the number of array it can hold
    number = new int[100];
    //set the counter to be equal to zero;
    numCounter = 0;
    validate.InputString("enter up to 100 positive integer;");
    while(true){
        validate.InputString("enter 0 to end");
            num = validate.userInt();
                //this will exist the loop statement
                if(num <= 0)
                    break;
            number[numCounter] = num;
            numCounter++;
    }

    //this will print the enter number from the array in reversed order
    for(int i = numCounter - 1; i >= 0; i--)
        System.out.println(number[i] +'\t');
}
int[]号;
int numCounter,num;
userInt validate=new userInt();
//设置它可以容纳的数组数
数字=新整数[100];
//将计数器设置为等于零;
numCounter=0;
validate.InputString(“最多输入100个正整数;”);
while(true){
validate.InputString(“输入0结束”);
num=validate.userInt();
//这将存在于loop语句中
如果(num=0;i--)
System.out.println(编号[i]+'\t');
}

将制表符的int值添加到每个数字中,即9

System.out.println(number[i] +'\t')
如果要在每个数字后打印选项卡,请更改为:

System.out.println(number[i] + "\t");
number
的类型为
int[]

ASCII中的Tab是9,正如我们在ASCII表中看到的:

运行代码时,Java会看到:

int + char 
它不能添加
char
int
,因此需要提升
char
。表达式中精度最高的类型是
int
类型,因此
char
转换为其
int
表示形式。因此,它变成:

int + int
要解决这个问题,您需要将
字符
更改为
字符串
。这将使其比
int
具有更高的精度,并意味着
int
将提升为
String
,从而将
+
从整数加法运算符更改为字符串串联运算符

额外阅读

  • 了解。这是一个将所有操作数提升到相同精度以便于操作的过程

  • 不妨阅读一下Java中
    之间的区别。您可以看到这一点


正如其他一些已经提到的,当你的编译器碰到标签字符时,它将它作为int来计算,并且增加整数值来增加你的数组值。此外,为了帮助你,而不是有一个<代码>真/ <代码>值作为while循环条件,考虑移动<代码> NUMD,你看到了什么,它在做什么?你应该发布

userInt
code.Bingo!应该是
…+“\t”)
而不是。在我之前到达那里!精彩的捕获。+1非常详细:)+1这说明了一切:)谢谢,没问题,特里!如果你还有任何问题,请随时发布类似质量的问题:)
int + int