执行此操作后会发生什么(窗帘后面)?
int x = 7;
x = x++;
Run Code Online (Sandbox Code Playgroud)
也就是说,当一个变量后期递增并在一个语句中赋值给自己时?我编译并执行了这个.在整个声明之后x仍然是7 .在我的书中,它说增加了!x
你能简单解释一下我理解这个吗?
int result = 5;
result = result--;
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
为什么结果等于5?
我有点怀疑,我有一个代码
int num=0;
for(int i=0;i<5;i++){
num=num++;
System.out.print(num);
}
Run Code Online (Sandbox Code Playgroud)
为什么输出总是00000
根据Oracle运算符优先级规范,执行如下操作:
x-- // Returns x, then subtracts 1 from x.
Run Code Online (Sandbox Code Playgroud)
应优先于:
--x // Subtracts 1 from x, then returns x.
Run Code Online (Sandbox Code Playgroud)
所以,鉴于下面的小片段,为什么:
int x = 5;
int y = --x * 5 + x--;
System.out.println(x+" vs "+y);
Run Code Online (Sandbox Code Playgroud)
打印3 vs 24而不是3 vs 20?
精
假设运算符优先级的给定顺序,可以将代码段的第2行分解为以下伪块(先前评估的值放在方括号中):
评估 x--
评估 --x
评估 [--x] * 5
评估 [--x * 5] + [x--]
评估 y = [--x * 5 + x--]
然后将解决如下:
1点之后 returns 5 sets x to 4
2点以后 …
我试图在Java 7环境中理解这段代码,
int T = getIntVal();
while (T--> 0) {
// do stuff here
}
Run Code Online (Sandbox Code Playgroud)
在while循环中不修改T. 有人可以解释这段代码吗?
我碰巧知道,在下面的表达式中,使用i++将导致无限流,i将始终为 0。我感到困惑是因为我认为i++没有使用返回值,即使如此,它也不应该在i之后中断增量。
IntStream.iterate(0, i-> i<10, i-> ++i).forEach(....)
Run Code Online (Sandbox Code Playgroud) 我开始学习Java已经3天了.我有这个程序,我不理解main方法++和--运算符中的代码.我甚至不知道该怎么称呼它们(这些操作员的名字)任何人都可以解释我的全部内容.
class Example {
public static void main(String[] args) {
x=0;
x++;
System.out.println(x);
y=1;
y--;
System.out.println(y);
z=3;
++z;
System.out.println(z);
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道为什么这段代码会给出输出112
最后一位数字2是如何创建的?
public static void main(String[] args) {
int i = 0;
System.out.print(++i);
System.out.print(i++);
System.out.print(i);
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
所以我刚开始用Java编程,我只是很难理解为什么会这样
for (int i = 0, j=0; i <10; i++) {
System.out.println(j += j++);
}
Run Code Online (Sandbox Code Playgroud)
打印出10次?
java ×9
for-loop ×2
operators ×2
expression ×1
increment ×1
java-7 ×1
java-9 ×1
lambda ×1
loops ×1
oop ×1
performance ×1
while-loop ×1