2
  myf = new Finch();
    do
    {
              //menu 4
    if (s.equals("Tap Test")) RunTapTest(s);

            } 

  private static void RunTapTest(String s)
    {
        @SuppressWarnings("resource")
        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the time interval in which you want the Finch to move backwards: ");

        //get user input for tapBack
        int tapBack = reader.nextInt();

        System.out.println("\n"+"Running: "+s+"\n");
        long before = System.currentTimeMillis();
        while(System.currentTimeMillis() - before < testtime)
        {
            System.out.println(myf.isTapped());
            //myf.setWheelVelocities(-255,0,testtime);

        }
                    //I can't set myf.isTapped = true
        if (myf.isTapped()) {
            myf.setWheelVelocities(-255,0,tapBack);
        }


    }

这是作业问题:

菜单选项 4 将确定 Finch 的尾巴是否被轻拍。如果是这样,Finch 应该用口语“谢谢”作为回应,并在用户指定的时间间隔内向后移动。

我只是试图修复用户指定的时间间隔(目前),但我在实现它时遇到了麻烦。

如果我尝试这段代码

if (myf.isTapped() = true) {
            myf.setWheelVelocities(-255,0,tapBack);
        }

我收到一个错误:

if (myf.isTapped() = true)

赋值的左边必须是变量

如果 myf.isTapped = true,我正在努力让机器人向后移动

也许 myf.isTapped 不能采用布尔值?

我正在使用http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html进行用户输入(在这种情况下为整数)

另外,我认为 my.isTapped 来自外部 Jar 文件。

4

3 回答 3

3

将其更改为

if (myf.isTapped() == true)

甚至更好

if (myf.isTapped())

=意味着分配==意味着比较

于 2012-12-15T17:31:59.537 回答
2

尝试改变

 if (myf.isTapped() = true)

 if (myf.isTapped())
于 2012-12-15T17:34:09.967 回答
-1

在所有语言中(至少在 jS、Python、Java 和 C# 中)都=意味着赋值。==是“等于”运算符。

我来自 Python 背景,所以:

test = True
if test == True:
    print("Hello")
else:
    print("Goodbye")

运行此代码的结果将是

Hello

于 2017-02-03T13:27:58.857 回答