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 は、フィンチの尻尾がタップされたかどうかを判断します。その場合、フィンチは「ありがとう」という言葉で応答し、ユーザーが指定した時間間隔で後方に移動する必要があります。

ユーザーが指定した時間間隔を(現時点で)修正しようとしているところですが、実装に問題があります。

このコードを試すと

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 に答える