Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是我错了还是结果错了?_Java_If Statement_Switch Statement - Fatal编程技术网

Java 是我错了还是结果错了?

Java 是我错了还是结果错了?,java,if-statement,switch-statement,Java,If Statement,Switch Statement,我有一个java示例,我知道这很简单,但我只是一个初学者。我在第8行和第9行遇到了一个问题: while (tailFeathers > 1){ System.out.print(--tailFeathers + " ");} 我想它会打印52,因为1不大于1,但答案是E,也就是521。你能给我解释一下吗?我是错的还是奇怪的结果?非常感谢。请严格遵循逻辑 看来你同意第七行的说法。屏幕的输出为5 此时尾羽=3 3> 1因此,进入回路,在使用前减少尾羽 因此,屏幕输出现在

我有一个java示例,我知道这很简单,但我只是一个初学者。我在第8行和第9行遇到了一个问题:

while (tailFeathers > 1){
System.out.print(--tailFeathers + " ");}

我想它会打印52,因为1不大于1,但答案是E,也就是521。你能给我解释一下吗?我是错的还是奇怪的结果?非常感谢。

请严格遵循逻辑

看来你同意第七行的说法。屏幕的输出为5

此时尾羽=3

3> 1因此,进入回路,在使用前减少尾羽

因此,屏幕输出现在是5 2

此时尾羽=2

2> 1因此,进入回路,在使用前减少尾羽

所以屏幕输出现在是5 2 1

此时尾羽=1

1=1不要进入循环

屏幕输出为5 2 1

我想它会打印52,因为1不大于1,但答案是E,也就是521。你能给我解释一下吗

您认为当尾羽==1时不会输入环体是正确的,但您误解了将打印的内容

以下是循环:

while (tailFeathers > 1) {
     system.out.print(--tailFeathers + " ");
}
假设输入循环体是因为tailfeaths==2,即>1。system.out.print-TAILFEATURES+语句将按照定义良好的顺序执行多项操作:

它将减小尾羽的值,即将尾羽设置为1, 它将调用库函数来创建新字符串1,以表示尾羽的新十进制值, 它将字符串1与字符串连接起来,以创建一个新字符串1,最后, 它将调用system.out.print1。 这里的关键概念是尾羽的含义。该表达式的值是变量递减后的尾羽值

如果你把它改成尾羽-,你会得到不同的结果。在这种情况下,表达式的值是尾羽在递减之前的值,即,在上面的示例中为2

记住这一点的方法是从左到右阅读:

-t表示首先减小t,然后使用t的新值,以及 t-表示首先使用t的原始值,然后在一段时间后减小t。
-计数器=>计数器=计数器-1。 它的值会立即更新,这就是pre操作符的工作方式。
另外,请记住最后一个循环中有while循环,因此它会递归打印,直到条件变为false。

请将代码和结果作为文本粘贴到问题中。作为图像阅读是非常困难的。如果尾羽为2,2>1,并且由于-tailfeaths,它将打印1。请参阅@lucumt这是一个测验,它不是正确的。@s.L.Barth-monica这不是默认值内的情况,它是一个默认值,然后是另一个情况3。这就是为什么你需要在两个案例之间休息。