Java 随机数未初始化
我这里有这个代码:Java 随机数未初始化,java,android,random,Java,Android,Random,我这里有这个代码: Random rand = new Random(); int randomNum; int i; String[] text1 = getResources().getStringArray(R.array.text1); String[] text2 = getResources().getStringArray(R.array.text2); for(i = 0; i < ((MAX - 1)^(MAX - 1
Random rand = new Random();
int randomNum;
int i;
String[] text1 = getResources().getStringArray(R.array.text1);
String[] text2 = getResources().getStringArray(R.array.text2);
for(i = 0; i < ((MAX - 1)^(MAX - 1)); i++) {
randomNum = rand.nextInt(2);
// True wenn bereits angezeigt worden
if(shown_table.get(randomNum)) {
continue;
}
// False wenn noch nicht angezeigt worden
else {
break;
}
}
// Texte anzeigen und Shown table auf true setzen.
txt_text1.setText(text1[randomNum]);
txt_text2.setText(text2[randomNum]);
//shown_table.put(randomNum, true);
当我把“randomNum=rand.nextInt(2);”放在循环之前时,它会工作。。。但那不是我想要的
你知道为什么吗
ps:我对编码不太熟悉编译器无法从代码中保证'randomNum'将被初始化,因为for循环可能是空的。这就是为什么行
txt_text1.setText(text1[randomNum])代码>不应编译
如果您确信执行将始终进入循环,请使用任何大致合理的值初始化它,例如int randomNum=0代码>编译器无法从代码中保证“randomNum”将被初始化,因为for循环可能为空。这就是为什么行txt_text1.setText(text1[randomNum])代码>不应编译
如果您确信执行将始终进入循环,请使用任何大致合理的值初始化它,例如int randomNum=0代码>XOR的属性是:对于所有x,x^x==0。因此表达式(MAX-1)^(MAX-1)
的计算结果总是为零,并且您的代码永远不会进入循环
但这不是问题所在。编译器总是假定循环可能永远不会执行,并且它抱怨在这种情况下,randomNum
在用作数组下标时将不会被初始化。XOR的属性是:对于所有x,x^x==0。因此表达式(MAX-1)^(MAX-1)
的计算结果总是为零,并且您的代码永远不会进入循环
但这不是问题所在。编译器总是假设循环可能永远不会执行,并抱怨在这种情况下,当它用作数组下标时,randomNum
不会被初始化。^
不应该在Java中计算幂集。是XOR<代码>^
不应在Java中计算幂集。是XOR。感谢您提供的这些信息,但现在我遇到了这个问题:无法启动activity ComponentInfo{com.example.alex.wouldYou按Button/com.example.alex.wouldYou按Button.main活动}:java.lang.nullpointer异常:尝试调用虚拟方法'java.lang.Object java.util.Hashtable.get(java.lang.Object)“在一个空对象引用上,
@mrminemete它看起来像是显示的表
是空的。@mrminemete看一看:@HiI'mfrogato是的……这是因为表中的空值。当我想把一些东西放到我的表中时,它不会工作……我在onCreate
,显示的表中添加了它。put(1,true)
我用它来创建hashtable公共hashtable show\u table;
@mrminemete您只是声明一个hashtable类型的变量,但您必须实际创建一个实例。类似于Map show\u table=new hashtable()
谢谢您提供这些信息,但现在我遇到了一个问题:无法启动活动组件信息{com.example.alex.wouldYou按按钮/com.example.alex.wouldYou按按钮.main活动}:java.lang.nullpointer异常:尝试调用虚拟方法'java.lang.Object java.util.Hashtable.get(java.lang.Object)'在一个空对象引用上
@mrminemete它看起来像是显示的表
是空的。@mrminemete看一看:@HiI'mfrogato是的……这是因为表中的空值。当我想把一些东西放进我的表中时,它就不起作用了……我在onCreate
,显示的表中添加了它。put(1,true)
我用它来创建hashtable公共hashtable show\u table;
@mrminemete您只是声明一个hashtable类型的变量,但您必须实际创建一个实例。类似于Map show\u table=new hashtable()
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Error:(118, 33) error: variable randomNum might not have been initialized