Java 如果语句涉及相同的内容,它们是否会相互冲突?

Java 如果语句涉及相同的内容,它们是否会相互冲突?,java,Java,如果您有两个If语句: int n = -1; if (n < 0) return null; if (n <= 1) return "yay"; intn=-1; if(n

如果您有两个
If
语句:

int n = -1;

if (n < 0)
    return null;

if (n <= 1)
    return "yay";
intn=-1;
if(n<0)
返回null;
如果(n它将返回null

顺便说一句,在Java中,“If”无效,您必须使用“If”和圆括号表示ifs,它将返回null

顺便说一句,Java中的“If”无效,必须使用“If”和圆括号表示If

它会自上而下地运行代码并在第一个IF语句处停止吗

是的,它会的。如果结果是n<0,那么它会立即返回null。(我不知道你为什么把这个问题标记为Java,你发布的代码不是Java代码。)

它会自上而下地运行代码并在第一个IF语句处停止吗


是的,它将返回null。如果结果是n<0,那么它将立即返回null。(我不知道你为什么将这个问题标记为Java,你发布的代码不是Java代码。)

它将返回null,只是因为返回(在第一个测试中)意味着第二个测试将不会执行。

它将返回null,只是因为返回(在第一个测试中)表示将不执行第二个测试。

它将返回
null
,因为这是匹配的第一个条件。在返回后,函数的其余部分不会执行,函数按顺序执行,因此它们不会冲突

“if语句冲突”的另一个示例是当您创建无法访问的代码时,例如:

if (n < 0)
    return "a";

if (n == -1)
    return "b";
if(n<0)
返回“a”;
如果(n==-1)
返回“b”;

此代码永远不会返回“b”,编译器可能会出错或发出警告。原因是当
n=-1
时,第一条语句总是被命中,因此永远不会到达第二条语句。

它将返回
null
,因为这是匹配的第一个条件。返回后,函数的其余部分不会执行,函数将按以下顺序执行因此,他们永远不会发生冲突

“if语句冲突”的另一个示例是当您创建无法访问的代码时,例如:

if (n < 0)
    return "a";

if (n == -1)
    return "b";
if(n<0)
返回“a”;
如果(n==-1)
返回“b”;

此代码永远不会返回“b”,编译器可能会出错或发出警告。原因是当
n=-1
时,第一条语句总是被命中,因此永远不会到达第二条语句。

将返回null。一旦命中return语句,控件将传回调用函数,将函数的返回值设置为之后指定的值return关键字。

将返回null。一旦点击return语句,控件将传回调用函数,将函数的返回值设置为return关键字后指定的值。

它返回null,因为这是它遇到的第一个返回。它甚至不检查第二个异常


当代码运行时,JVM检查第一个if中的条件,当条件满足时,它执行if中的内容。如果存在
return null
,则返回null。返回后,此方法中不会执行任何代码。唯一的例外情况是,您在
try
块中返回,并且在该次尝试后最后返回

它返回null,因为这是它遇到的第一个返回。它甚至不检查第二个异常


当代码运行时,JVM检查第一个if中的条件,当条件满足时,它执行if中的内容。如果存在
return null
,则返回null。返回后,此方法中不会执行任何代码。唯一的例外情况是,您在
try
块中返回,并且在该次尝试后最后返回

这只是对代码的一小部分重新格式化,带有一些显式注释。我发现显式大括号有助于某些人了解发生了什么。只需遵循程序流程即可。如果函数是从中返回的,则函数中不会执行后续语句。(这是一个善意的谎言,请参阅“最终”异常处理,但除此之外……——这是一个非常程序化(逐步)的过程

intn=-1;
if(n<0){
return null;//此函数中不会执行其他语句
//如果到达这条线
}

如果(n这只是代码的一个小的重新格式化,带有一些明确的注释。我发现显式大括号有助于一些人看到发生了什么。只需遵循程序流程即可。如果函数是从返回的,则函数中不会执行后续语句。(这是一个善意的谎言,请参阅“最终”异常处理,但除此之外……——这是一个非常程序化(逐步)的过程

intn=-1;
if(n<0){
return null;//此函数中不会执行其他语句
//如果到达这条线
}

if(n第一个
if
语句将首先被计算。
n
-1
实际上是
<0
,因此将执行与该
if
语句关联的代码体。
null
将被返回

可能让您困惑的是,尽管第二个
if
语句的计算结果为true,但它永远不会被计算。这是因为
return
语句在执行时会离开它所在的函数/方法

如果你写:

int x = 0;
return x;
x = 5;
x
将被设置为
0
x
将被返回。返回后的任何代码行都不会执行

下面是另一个例子,以澄清:

int x = 10;
if(x < 0)
   return;
x = 0;
intx=10;
if(x<0)
回来
x=0;

x
将被设置为
10
x
,这是
10
实际上不是
<0
,因此
if
语句的主体将被跳过。
x
将被设置为
0

第一个
if
语句当然将首先被求值。
n
这是
-1
事实上