1

ボタンをクリックすると、「x」値が配列 [0] [0] に格納されます。しかし、check メソッドでは、for ループ内の if ステートメントが両方とも実行されているため、条件が実行されている理由がわかりません。だから私は配列[0] [0]をsetMessageに与えている間、ifステートメントにダイアログボックスを入れ、それは「x」を印刷しますが、配列[i] [j]を与えている場合はnull値も印刷しますi と j の両方の値がゼロです。何が問題なのかわからない。

package com.example.tictactoe3;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.app.AlertDialog;

public class MainActivity extends Activity {

String array[][]=new String[3][3];

void check(String array[][])
{
    int i=0,j=0;
    for(i=0;i<3;i++)
    {
        for(j=0;j<1;j++)
        {
            if(array[i][j]==array[i][j+1])
            {
                if(array[i][j]==array[i][j+2])
                {
                    AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);

                    dlgAlert.setMessage(array[0][0]);
                    dlgAlert.setTitle("Tic Tac Toe");
                    dlgAlert.setPositiveButton("OK", null);
                    dlgAlert.setCancelable(true);
                    dlgAlert.create().show();
                }
            }
        }
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Button bt1= (Button) findViewById(R.id.button1);
    bt1.setOnClickListener(new View.OnClickListener() {
        boolean value=true;
        public void onClick(View v) {
            // TODO Auto-generated method stub
            bt1.setText("x");
            array[0][0]="x";
            check(array);
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

4

1 に答える 1

2

文字列の場合、次を使用して比較する必要があります

if (strOne.equals(strTwo)) 

また

if (strOne.equalsIgnoreCase(strTwo)) 

「==」演算子を使用しない

だから交換

if(array[i][j]==array[i][j+1])

if(array[i][j].equalsIgnoreCae(array[i][j+1]))

if(array[i][j]==array[i][j+2])

if(array[i][j].equalsIgnoreCase(array[i][j+2]))
于 2013-02-26T08:34:11.630 に答える