首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >局部变量操作可能尚未初始化?

局部变量操作可能尚未初始化?
EN

Stack Overflow用户
提问于 2013-10-20 08:27:38
回答 1查看 1.5K关注 0票数 0

在最后6个if语句中,我得到错误“本地变量操作可能尚未初始化”。我不知道它想从我这得到什么。请帮帮我!:(我已经尝试了eclipse建议的修复,并试图自己修复它,但都不起作用...

代码语言:javascript
复制
import java.util.Scanner;
import static java.lang.System.out;

public class test2 {

enum dog {sleeping, eating, peeing, pooping, dead, robot}

public static void main(String args[]) {
    Scanner myScanner = new Scanner(System.in);
    dog action;
    int heartrate;

    out.println("What is the heart rate of your dog? I will be able to tell you what the dog is doing from that information.");
    heartrate = myScanner.nextInt();

    if (heartrate >= 60 || heartrate <= 120) {
        action = dog.sleeping;
    }else if (heartrate == 0) {
        action = dog.dead;
    }else if (heartrate > 500) {
        action = dog.robot;
    }else if (heartrate >= 150 || heartrate <= 200) {
        action = dog.peeing;
    }else if (heartrate >= 150 || heartrate <= 200) {
        action = dog.pooping;
    }else if (heartrate >= 150 || heartrate <= 200) {
        action = dog.eating;
    }
    out.print("Your dog is currently ");
    if (action == dog.sleeping) {
        out.print("sleeping ");
    }
    if (action == dog.dead) {
        out.print("dead ");
    }
    if (action == dog.robot) {
        out.print("a robot.");
    }
    if (action == dog.peeing) {
        out.print("peeing ");
    }
    if (action == dog.pooping) {
        out.print("pooping ");
    }
    if (action == dog.eating) {
        out.print("eating ");
    }
    System.out.println(".");
}
}
EN

回答 1

Stack Overflow用户

发布于 2013-10-20 08:30:21

在使用该变量之前,必须为其赋值。例如,action不是在所有条件下都初始化的,所以您不能安全地使用它。

一个简单的解决方案是给出一个默认值,如下所示

代码语言:javascript
复制
dog action = dog.dead;

您可以使用一个switch块来代替一系列if(action ==语句。

顺便说一句,你的三个条件是相同的,你的IDE也应该警告你这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19472601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档