首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Greenfoot环路不工作

Greenfoot环路不工作
EN

Stack Overflow用户
提问于 2015-09-02 20:48:05
回答 1查看 119关注 0票数 0

这是我的代码

代码语言:javascript
复制
  import greenfoot.*;
  import javax.swing.JOptionPane;

    public class tableTester extends Actor
    {
    String userInput;
    int level;
    public void act() 
    {
        input();
        if(level == 1) {
            levelOne();
        } else {
            levelTwo();
        }
    }

public void input()
{
    do{
        userInput = JOptionPane.showInputDialog("Press 1 to play level 1 \nPress 2 to play level 2");
        Integer level = Integer.parseInt(userInput);
    }while((level <= 0) || (level >= 3));
}

public void levelOne()
{
    System.out.println("Level 1");
}

public void levelTwo()
{
        System.out.println("Level 2");
    }
}

我今天刚开始编程,正在尝试做一个do while循环。我希望它一直循环,直到用户输入1或2,然后调用next方法(取决于用户输入。如果用户输入1,则调用方法levelOne(),对于2,将调用levelTwo()

EN

回答 1

Stack Overflow用户

发布于 2015-09-03 03:33:37

在输入中,你声明了一个局部的"level“变量。这个级别变量“隐藏”类"level“字段。因此,您接受了level变量,对其赋值,然后丢弃它并退出方法,其中act()方法中的代码不起作用,因为level字段永远为零。修复代码的最好方法是通过去掉Integer部分来避免变量声明:

代码语言:javascript
复制
public void input()
{
    do{
        userInput = JOptionPane.showInputDialog("Press 1 to play level 1 \nPress 2 to play level 2");
        level = Integer.parseInt(userInput);
    }while((level <= 0) || (level >= 3));
}

(或者,您可以直接从该方法返回值,但这将需要更多的代码修改。)

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

https://stackoverflow.com/questions/32353613

复制
相关文章

相似问题

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