申し訳ありませんが、私はこの質問を正しく送信していません。ここは初めてのことです。whileループでアプリがフリーズする
私はコーディングとアプリケーション開発には新しいです。私は過去数週間Javaを学んでいて、アンドロイドアプリを作ろうとしています。それは単純な数字の推測ゲームです。
だから、ここでコードがありますが、if文がほんの少しあれば動作します。もちろん、これはループではないので、1つの推測しか得られません。
whileループに入れると、whileループがループしようとするとアプリケーションがフリーズします。ここで
コードです:
package com.example.jeremy.numberguessinggame;
import org.w3c.dom.Text;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView title = (TextView) findViewById(R.id.textView1);
final EditText userGuess = (EditText) findViewById(R.id.editText1);
Button btnSubmit = (Button) findViewById(R.id.button1);
final TextView guessFeedback = (TextView) findViewById(R.id.textView2);
final TextView textNumberOfGuesses = (TextView) findViewById(R.id.textView3);
final TextView textGuessNumber = (TextView) findViewById(R.id.textView4);
final TextView textCorrectNumber = (TextView) findViewById(R.id.tempText);
Random rand = new Random();
final int correctNumber = rand.nextInt(5)+1;
//This line is to convert the int correctNumber to a String
textCorrectNumber.setText(String.valueOf(correctNumber));
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int numberOfTries = 0;
//To compare (EditText)userGuess to (integer)rand, we need to get a String from userGuess, and then
//convert that string into an integer
String convertedString = userGuess.getText().toString();
int convertedNumber = Integer.parseInt(convertedString);
while (true) {
if (convertedNumber == correctNumber) {
guessFeedback.setText("You guessed the correct number");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
title.setText("YOU WON!!!!!");
break;
} else if (convertedNumber > 5 || convertedNumber < 1) {
guessFeedback.setText("The number is between 1 and 5.");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
} else if (convertedString.equals(null)) {
guessFeedback.setText("Nope.");
} else if (convertedNumber > correctNumber) {
guessFeedback.setText("Your guess is too high.");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
} else if (convertedNumber < correctNumber) {
guessFeedback.setText("Your guess is too low.");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
}
}
}
});
}
私はすでにそれをまともな量をグーグルで試してみたが、私はこの問題に多くの助けを見つけていませんよ。コードへのリンクはhttps://pastebin.com/B11pgvzDです。
誰でも可能性がありますか?