是否可以使用if else语句中的变量 value1 的值,并将其插入到if的其他必须在之外的等式中声明。
每次运行程序时,我的变量 value1
的值为0int value;
int value1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity3);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
final Random r=new Random();
value = r.nextInt(4 - 1 + 1) + 1;
if (value == 1) {
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
value1 = r.nextInt(4 - 1 + 1) + 1;
}
});
} else (value == 2) {
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
value1 = r.nextInt(4 - 1 + 1) + 1;
}
});
// equation
}
}
答案 0 :(得分:1)
您的问题在于使用Random
课程。
Random
创建伪随机数序列。每次创建Random
的新实例并致电nextInt()
时,您都会得到相同的数字。要更改此行为,您应该使用seed:作为参数传递给Random()
构造函数的任何整数。
通常人们将当前时间用作种子:
Random r = new Random(System.currentTimeMillis());
int n = r.nextInt();
此代码将在每个程序调用时创建不同的编号。
答案 1 :(得分:1)
直接回答你的问题:是的,你可以。 请看以下示例:
int value = 10;
int value1;
if (value == 10) {
value1 = 6;
}
System.out.println("Value1: " + value1);
这将起作用,并将输出6.并且如您所见,我已经使用了if语句之外的值。
答案 2 :(得分:0)
您可以实现的目标,但是您对该代码有其他一些问题,您是否尝试过编译它?
value
可能不是1,而你没有处理所有可能的情况至于你的实际问题,你可以获得if1之外的value1吗?您已经在if之外声明了变量 - 您已在成员级别声明它,因此您已经能够在类中的任何位置访问它