1

我是 Java 新手,我正在用 Greenfoot 编写这个简单的程序。如果我写“h”,程序会说“same”,现在我想写“i”并得到“same”,基本上我想在我得到“same”之后忽略“h”。我不确定这是怎么做到的。

    public void act()
{

    String letterh = "h";
    String letteri = "i";
    String keyPress1 = Greenfoot.getKey();
    String keyPress2 = Greenfoot.getKey();
    if (keyPress1 != null) 
    {
        if(keyPress1.equals(letterh))
        {
            System.out.println("Same");

        }
        else
        {
            System.out.println("Not same");
        } 
    }

    if (keyPress2 != null) 
    {
        if(keyPress2.equals(letteri))
        {
            System.out.println("Same");
        }
        else
        {
            System.out.println("Not same");
        }           
    }
}
4

1 回答 1

0

调用时只需为 letterh 分配新值(当“h”至少写入一次时)。

public void act()
{

    String letterh = "h";
    String letteri = "i";
    String keyPress1 = Greenfoot.getKey();
    String keyPress2 = Greenfoot.getKey();
    if (keyPress1 != null) 
    {
        if(keyPress1.equals(letterh))
        {
           Called.call1();

        }

    }

    if (keyPress2 != null) 
    {
       if(keyPress2.equals(letteri))
        {
            Called.call2();
        }
        else
        {
            System.out.println("Not same");
        }       

    }
}

使用以下代码创建一个新的类文件“Called.java”。

public class Called {
static String count="one"; //observe this static string usage
static void call1()
{
    if(count.equals("one"))
    {
        System.out.println("Same");
        count="somestring"; //call1() if condition will fail with this string not equal to "one"

    }
    else
    {
    System.out.println("Not Same");
    }
}
static void call2()
{

        System.out.println("Same");
}

}

这里要注意的主要是静态关键字的使用。

于 2013-10-12T21:10:03.713 回答