【问题标题】:Do i have to initialise a variable in every if else statement in Java?我是否必须在 Java 中的每个 if else 语句中初始化一个变量?
【发布时间】:2023-02-06 00:12:35
【问题描述】:
    int outsideTem = 10;
    String output;
    if(outsideTem < 0){
        //output = "Grab a coat";// i get an error if i comment out this line but why?
        //System.out.println(output);
    }
    else if(outsideTem < 15){
        output = "Grab a cardigan";
        //System.out.println(output);
    }
    else{
        output = "HOT!!!";
        //System.out.println("HOT!!!");
    }
    System.out.println(output);

如果我从 if 块中注释掉变量,则会出现错误。但我之前尝试过初始化它并且它正在工作。但我不确定为什么

    int outsideTem = 10;
    String output = "";// tried this and it is working but not sure why
    if(outsideTem < 0){
        //output = "Grab a coat";// i get an error if i comment out this line but why?
        //System.out.println(output);
    }
    else if(outsideTem < 15){
        output = "Grab a cardigan";
        //System.out.println(output);
    }
    else{
        output = "HOT!!!";
        //System.out.println("HOT!!!");
    }
    System.out.println(output);

【问题讨论】:

  • 你的第一个代码工作正常你可以编辑你的帖子并写下你得到的实际错误或者你的意思是你评论第一行但离开了 println 行?
  • 是的,你当然必须这样做。如果您不指定,您希望它包含什么?

标签: java if-statement error-handling printing conditional-statements


【解决方案1】:

是的,变量需要先初始化才能使用它们。 您正试图在 print 语句中使用该变量。如果 outsideTemp 小于 0 并且该行被注释掉,您希望 Java 在该行中打印什么?

但是,您不需要在 if 中进行初始化。您可以在声明变量时就已经对其进行了初始化。

所以以下将起作用:

public class Application {

    public static void main(String[] args) {
        int outsideTem = 10;
        // initialize here
        String output = "";
        if(outsideTem < 0){ // unused if here, but compiling code
            //output = "Grab a coat";
            //System.out.println(output);
        }
        else if(outsideTem < 15){
            output = "Grab a cardigan";
            //System.out.println(output);
        }
        else{
            output = "HOT!!!";
            //System.out.println("HOT!!!");
        }
        System.out.println(output);
    }

}

【讨论】:

  • else 子句不保证 output 会有一个值(if ... else if ... else)吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
相关资源
最近更新 更多