gpt4 book ai didi

java - 语义和语法上冗余的花括号更改编译器错误消息

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:39 29 4
gpt4 key购买 nike

编译以下代码时,我从第一个 if 语句中没有收到错误消息,但从第二个 if 语句中收到错误消息。唯一的区别是第二个 if 语句有花括号。

public class Test{

public static void main(String args[]){
if(Math.random()<1.0d){
int a=5;}

if(Math.random()<1.0d)
int a=5;

}

}

第一个 if 语句:

no errors

第二个 if 语句:

Test.java:10: error: '.class' expected
int a=5;
^
Test.java:10: error: not a statement
int a=5;
^
Test.java:10: error: illegal start of expression
int a=5;
^
Test.java:10: error: ';' expected
int a=5;

我在这里遗漏了什么吗?

最佳答案

我认为你的意思是第二个失败而第一个没有。

当你有 int a=5 时,你就声明了一个新变量 a。该变量仅在声明它的范围内有效,在这两种情况下都意味着在 if block 内。

当 if 语句两边有大括号时,您可以在其后使用变量 a 进行语句。当你没有这些括号时,你就声明了一个完全无用的变量,因为它会立即超出范围并被丢弃。

关于java - 语义和语法上冗余的花括号更改编译器错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163594/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com