【问题标题】:How can I use a value of a variable that is assigned to the variable in a previous if statement?如何使用在前一个 if 语句中分配给变量的变量值?
【发布时间】:2015-06-25 10:31:24
【问题描述】:

这是 Android Studio 中的代码。我创建了按钮开始,更高和更低。目标是让“开始”按钮显示随机数猜测。当按下“更高”或“更低”按钮时,必须使用此初始随机数。但是如果我按照下面的方式进行操作,它会给我 x 未初始化的错误。我知道这是因为我在另一个 if 循环中为 x 分配了一个值,但我不知道如何修复它。谁能帮帮我?

  @Override
  public void onClick(View v) {
    int x;
    int lowBound;
    int highBound;
    if (v==start) {
        x=(int) Math.random()*1000;
        myTextView2.append("Random guess is "+String.valueOf(x));
    }
    if (v==higher) {
        lowBound=x;
        x= (int) (lowBound+Math.random()*(1000-lowBound));
        myTextView2.append(" New guess is "+String.valueOf(x));
    }
    if (v==lower) {
        highBound=x; 
        x=(int) (highBound-Math.random()*(1000-highBound));
        myTextView2.append(" New guess is "+ String.valueOf(x));
    }

}

【问题讨论】:

  • 我现在在方法之外声明了随机数。它仍然给我“随机猜测为 0”。此外,每次单击“更高”或“更低”按钮时,它都应适应随机数生成器的边界。这样一来,效果也不太好。也许我解决问题的整个方法是完全错误的......

标签: variables button if-statement variable-assignment


【解决方案1】:

如果v 等于start 以外的任何值,则变量将分配给lowerBoundupperBound 未初始化。

除非我读错了,否则这实际上表明您的逻辑存在缺陷:

每次调用 onClick 时,x 要么在 v == start 时被重置,要么在未启动的情况下使用。

x 应该在方法之外声明,因为您需要它在onClicks 之间“生存”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-02
    • 2017-01-07
    • 2019-09-06
    • 2021-04-16
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2018-07-31
    相关资源
    最近更新 更多