总是进入第一种情况,任何人都可以解释一下吗?

时间:2018-01-25 18:51:10

标签: android

1.我正在尝试在Android工作室上创建一个更高或更低的游戏,并且由于某种原因它总是只进入第一个案例。 2.应用程序运行,但不会提供所需的输出。

package com.sanpochi.higherorlowergame;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Random;

public class MainActivity extends AppCompatActivity {
  int n;

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

    Random rand = new Random();
    int n = rand.nextInt(20)+1;
  }

  public void Guess(View view) {
    EditText number = (EditText) findViewById(R.id.num);
    int numb = Integer.parseInt(number.getText().toString());

    if (n < numb) {
      Toast.makeText(MainActivity.this, "Higher!", Toast.LENGTH_SHORT).show();
    }
    else if (n > numb) {
      Toast.makeText(MainActivity.this, "Lower!", Toast.LENGTH_SHORT).show();
    }
    else
      Toast.makeText(MainActivity.this, "You are correct!! Congrats!", Toast.LENGTH_SHORT).show();
    }
  }
}

2 个答案:

答案 0 :(得分:1)

从此行中删除int int n = rand.nextInt(20)+1; 让它成为

n = rand.nextInt(20)+1;

onCreate中生成的随机数不会在public void Guess(View view){}中使用,因为变量n的范围受到限制。

答案 1 :(得分:0)

  

......由于某种原因,它总是只进入第一种情况。

在WHERE中使用函数Guess()?怎么知道这个? onCreate函数几乎与您的主要想法无关。

问题2是由同一个问题完成的。