相关疑难解决方法(0)

Java中"if"的奇怪案例

在做某事的时候,我偶然发现了这段代码:

if(true) {
    String message = "Assignment possible";
}

if(true)
    String message = "Time to leave earth";  // error!
Run Code Online (Sandbox Code Playgroud)

为什么在第二种情况下可以在没有括号的情况下在java中写入"if"条件时出现编译错误?

错误消息似乎没有给出正确的信息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
Syntax error, insert "AssignmentOperator Expression" to complete Assignment
Syntax error, insert ";" to complete Statement
String cannot be resolved to a variable
message cannot be resolved to a variable
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗?有人可以解释一下吗?

java if-statement

20
推荐指数
1
解决办法
197
查看次数

Java中的对象创建语句不允许使用单行循环.为什么?

以下程序没有自己的重要性.它只计算使用类计数器内部的静态字段通过使用for循环创建的对象数,如下所示.

package temp;

final class Counter
{
    private static int cnt;

    public Counter()
    {
        cnt++;
    }

    public static int show()
    {
        return(cnt);
    }
}

final public class Main
{
    public static void main(String[] args)
    {
        for (int i=0;i<50;i++)
        {
            Counter counter=new Counter();
        }

        /*for (int i=0;i<50;i++)
            Counter counter=new Counter();*/

        System.out.print("\nNumber of objects constructed:->"+Counter.show()+"\n\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

这里唯一的问题是注释for循环意味着与上面的for循环相同(同样的东西也应用于while循环)根本不起作用导致编译时错误,表明" 不是语句 "意味着在这种特殊情况下,即使for循环只包含一个语句,这对括号也是必需的!为什么?

java

19
推荐指数
2
解决办法
1039
查看次数

Java中的语法错误

if ( year % 4 == 0 )
    int i = 0;
else
    int j = 0;
Run Code Online (Sandbox Code Playgroud)

由于这行代码而在eclipse中出现的语法错误是:

  • 令牌"int"上的语法错误,删除此令牌
  • 我无法解决变量
  • 令牌"int"上的语法错误,删除此令牌
  • j无法解析为变量
  • 令牌"="上的语法错误,删除此令牌

我不知道为什么会这样.

从我观察到的情况来看,我认为在if else构造体中放置一个int声明正在实现它.

如果我在代码中更早地声明i和j并运行程序,则错误消失如下:

int i; int j;
if ( year % 4 == 0 )
    i = 0;
else
    j = 0;
Run Code Online (Sandbox Code Playgroud)

在这种情况下没有语法错误.为什么?

java syntax-error

7
推荐指数
1
解决办法
163
查看次数

Java - 无法在shortend行中创建对象

最近我在短暂的休息后再次开始使用Java进行编程,在为朋友做项目时我注意到一些奇怪的事情:看起来你不能用缩短的ifs创建对象,例如:

if( condition )
     Statement statement = con.createStatement();
Run Code Online (Sandbox Code Playgroud)

(为简单起见,我将代码缩短了.)

我收到一个错误说Statement(java.sql包中的一个类)无法解析为变量,但是,如果我用括号包装代码它会工作正常.

我认为这是编译器将其转换为多行语句的一些问题,但我不确定,我想知道这种行为的原因,提前感谢!

java

3
推荐指数
1
解决办法
92
查看次数

如果未使用带有if的大括号,则会出现Java代码编译错误

为什么以下代码会出现编译错误?

if (true)
    int p=10;
Run Code Online (Sandbox Code Playgroud)

如果我使用块,以下类似的代码可以工作:

if (true) {
    int p=10;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Eclipse IDE.请让我知道为什么我们不能做第一个的确切原因.

java if-statement

2
推荐指数
1
解决办法
120
查看次数

标签 统计

java ×5

if-statement ×2

syntax-error ×1