Java 将char变量乘以int
以下代码:Java 将char变量乘以int,java,char,logic,Java,Char,Logic,以下代码: public class test { public static void main(String[] args) { char ch =65; System.out.println(ch); } } 生成以下输出: A 65 但以下代码: public class test { public static void main(String[] args) { char ch =65; Sys
public class test
{
public static void main(String[] args) {
char ch =65;
System.out.println(ch);
}
}
生成以下输出:
A
65
但以下代码:
public class test {
public static void main(String[] args) {
char ch =65;
System.out.println(ch*1);
}
}
生成以下输出:
A
65
为什么,为什么Java不将int输出从“ch*1”转换回char?因为println有多个签名,并且在代码中调用两个不同的方法:
第一个println printlnch;电话:
以及第二printlnch*1;电话:
因为ch*1是一种算术运算,它返回一个int而不是char,因为println有多个签名,并且在代码中调用两种不同的方法:
第一个println printlnch;电话:
以及第二printlnch*1;电话:
由于ch*1是一种算术运算,当您将字符乘以整数时,它返回的是整数而不是字符,因此结果是整数而不是字符
这意味着System.out.printlnch;调用printlnchar x,而System.out.printlnch*1;调用printlint x
printlnchar调用的printchar有以下注释:
打印一个字符。根据平台的默认字符编码,字符被转换为一个或多个字节,这些字节完全按照writeint方法的方式写入
将字符乘以整数时,结果是整数,而不是字符
这意味着System.out.printlnch;调用printlnchar x,而System.out.printlnch*1;调用printlint x
printlnchar调用的printchar有以下注释:
打印一个字符。根据平台的默认字符编码,字符被转换为一个或多个字节,这些字节完全按照writeint方法的方式写入
因为你在做乘法,所以Java会自动转换成字符的数值。因为你在做乘法,所以Java会自动转换成字符的数值。在Java中,每当算术运算涉及两种数据类型时,较小的类型会转换成较大的类型。执行以下操作时,在代码中: ch*1,其数据类型为字符和整数,较大的类型为整数,因此执行重载的printlint x 通常,获得的结果数据类型取决于操作数类型
请参阅以进一步了解。希望这能澄清。在Java中,每当一个算术运算涉及两种数据类型时,较小的类型将转换为较大的类型。执行以下操作时,在代码中: ch*1,其数据类型为字符和整数,较大的类型为整数,因此执行重载的printlint x 通常,获得的结果数据类型取决于操作数类型
请参阅以进一步了解。希望这能澄清问题。你认为为什么应该这样做?将整数和字符相乘。在我看来,返回int比返回char更符合逻辑。而且,不管您认为什么是合乎逻辑的,Java语言规范都定义了这样的操作是如何完成的:char被提升为int,然后两个int相乘,这就得到了int。您认为为什么应该这样做?将整数和字符相乘。在我看来,返回int比返回char更符合逻辑。而且,不管您认为逻辑与否,Java语言规范定义了这些操作是如何完成的:char被提升为int,然后两个int相乘,得到int。