Java If-Statement的缩写形式



我找到了以下代码:

static void CreatePartys(int n) 
{ 
int num = 0;
int[] e = new int[n];
e[num] = n;
while (true) 
{ 
int part = 0; 
count = count +1;
while (num >= 0 && e[num] == 1) 
{ 
part += e[num]; 
num--; 
} 
if (num < 0)  return; 
e[num]--; 
part++; 
while (part > e[num]) 
{ 
e[num+1] = e[num]; 
part = part - e[num]; 
num++; 
} 
e[num+1] = part; 
num++; 
} 
} 

我被困在if-Statement上,我以前从未见过这种情况,甚至在Java-Book中也没有。

if (num < 0)  return; 

它返回什么?真,假,一个数字?

简短解释:

如果你只写 return;你可以停止当前方法的执行。

如果语句不需要大括号,如果它们后面有一个语句,例如

if(2<variable)
System.out.println("inIf")
System.out.println("outsideIf")

所以。if (num < 0) return;

只是意味着:当数字小于0时停止执行方法 不会调用方法中的其他代码

在 if之后跟着一个语句。以下是有效的代码:

if (a > 5) b = c + 2;

这里b = c + 2;是一个正常的陈述。

但语句也可以用大括号定义。您也可以在普通代码中使用大括号,如下所示:

long i = 3;
long j = 4;
long k = 9;
{ i = j + 7; }
{ i = i * k + 123; }
i = 345;
{ k = j * 10; }
{
i = 234 * j; 
k = 12 * j;
System.out.println(i);
}

这种形式通常没有意义,因为它使代码难以理解:)但这是可以正确编译的有效代码。

你经常看到的只是上面这样的陈述。

为什么我们经常在if之后看到大括号?之后,如果只执行一个语句。如果你有这样的代码

if (a > 5)
b = c + 2;
k = i + 3;

则语句b = c + 2;将在条件a> 5成立时执行。但是语句k = i + 3;始终执行,独立于> 5

如果希望两个语句仅在> 5成立时才执行,则可以使用大括号:

if (a > 5) {
b = c + 2;
k = i + 3;
}

当您想根据if只执行一个语句时,可以省略大括号。但是您在项目中的队友可能不确定您是有意省略大括号还是只是一个错误。为了避免任何此类疑问,许多项目中的编码准则要求if之后的任何语句都必须使用大括号,无论语句多么简单。

最新更新