当前位置: 首页 > 面试题库 >

将int添加到short

张鹏云
2023-03-14
问题内容

我的一位同事向我问了这个问题,我有些困惑。

int i = 123456;
short x = 12;

该声明

x += i;

编译很好但是

x = x + i;

Java在这里做什么?


问题答案:

int i = 123456;
short x = 12;
x += i;

实际上是

int i = 123456;
short x = 12;
x = (short)(x + i);

x = x + i仅仅是x = x + i。它不会自动转换为a short,因此会导致错误(x + i类型为int)。

形式的复合赋值表达式E1 op= E2等效于E1 = (T)((E1) op (E2)),其中T是的类型E1,不同之处在于该表达式E1仅被评估一次。

-
JLS§15.26.2



 类似资料:
  • 但是,后来当我试图将整数添加到正确的“内部”数组列表中时,我无法将整数添加到ArrayList类型的位置中。我还得到一个索引超出界限的错误。 解决这个问题的方法是将整数强制转换为ArrayList类型,但这意味着我将在内部数组列表中添加一个数组列表,这不是我想要的。我想在正确的“内部”ArrayList中添加一个int。

  • 我有PHP知识,我想学习C#语言,但我甚至不做简单的加法。 我想得到一个组合框的值,将这个值转换为int,并能够添加另一个值 尽管已完成转换,但我有一个错误:无法将类型“int”转换为“string”。 我的代码: 谢谢你

  • 问题内容: 想要向现有数组添加或追加元素 现在我想用我发送的新值动态更新系列。 就像我发送3个更新系列 再次,如果我发送4更新系列作为 再次,如果我发送1个更新系列,依此类推 怎么做???? 我在其他函数中每5分钟生成一个整数,并希望发送以更新数组。 问题答案: 数组的长度在Java中是不可变的。这意味着一旦创建数组便无法更改其大小。如果使用2个元素初始化它,则其长度为2。但是,您可以使用其他集合

  • 问题内容: 我对Swift还是相当陌生,在寻找一种将空间添加为千位分隔符的方法时遇到了很多麻烦。 我希望实现的是获取计算结果并将其显示在文本字段中,以便格式为: 2358 000 代替 2358000 例如。 我不确定是否应该格式化Int值,然后将其转换为String,或者在将Int值转换为String之后添加空格。任何帮助将不胜感激。 问题答案: 您可以使用NSNumberFormatter指定

  • 问题内容: 据我了解,字符是单个字符,即字母, 数字 ,标点符号,制表符,空格或类似内容。因此,当我这样做时: 输出1正是我所期望的。那为什么当我这样做时: 我最终的输出是 50 吗? 问题答案: 之所以得到它,是因为它添加了char 的ASCII值。您必须先将其转换为int。

  • 问题内容: 因此,我一直在致力于在字符串之前添加0的命名约定。我正在尝试将所有内容都分解为if语句之前的快捷方式。在这里,我在整数前打印0,给我一个00005的答案。 现在,我想对字符串执行此操作。例如,如果String n =“ 5”; 如果String n =“ 20”,它将给出00005的答案;它将是00020。我不希望使用整数方法将字符串更改为and int,然后再更改回字符串。任何帮助,