我曾经有一些基本的Java技能,但自从我使用它们已经有几年了。我的程序做了我想要的一切,但我需要它运行该程序1000次,并保持总计rtCorrect
和rtIncorrect
。这2个总数实际上是我最终需要的唯一东西(即我只需要最后注释掉的语句)。我不确定是否应该在我的主要方法中添加外部循环,或者如果我应该有一个单独的方法。我并不担心它很漂亮,所以我宁愿只用一个简单的循环在主要方法中完成。外部循环运行我的程序1000次并保持一个计数 - Java
import java.util.Random;
public class Thesis {
public static void main (String [] args){
int correct = 0;
int incorrect = 0;
int rtCorrect = 0;
int rtIncorrect = 0;
while(correct<20 && incorrect<20){
Random rand = new Random();
int pickedNumber = rand.nextInt(100);
if (pickedNumber<52){
correct++;
}
else if (pickedNumber>51){
incorrect++;
}
if (correct == 20){
rtCorrect = rtCorrect + correct + incorrect;
}
else if (incorrect == 20){
rtIncorrect = rtIncorrect + incorrect + correct;
}
}
}
System.out.printf("Correct: %d Incorrect: %d", correct, incorrect);
System.out.printf ("\nCorrect Response Time: %d\nIncorrect Response Time: %d", rtCorrect, rtIncorrect);
//System.out.printf ("\nTotal Correct RT's: %d \nTotal Incorrect RT's: %d", totalRTCorrect, totalRTIncorrect);
}
}
这是我曾尝试:
import java.util.Random;
public class Thesis {
public static void main (String [] args){
int correct = 0;
int incorrect = 0;
int rtCorrect = 0;
int rtIncorrect = 0;
for (int j = 0; j < 1000;j++){
int totalRTIncorrect = 0;
int totalRTCorrect = 0;
while(correct<20 && incorrect<20){
Random rand = new Random();
int pickedNumber = rand.nextInt(100);
if (pickedNumber<52){
correct++;
}
else if (pickedNumber>52){
incorrect++;
}
if (correct == 20){
rtCorrect = rtCorrect + correct + incorrect;
}
else if (incorrect == 20){
rtIncorrect = rtIncorrect + incorrect + correct;
}
}
totalRTIncorrect = totalRTIncorrect + rtIncorrect;
totalRTCorrect = totalRTCorrect + rtCorrect;
System.out.printf ("\nTotal Correct RT's: %d \nTotal Incorrect RT's: %d", totalRTCorrect, totalRTIncorrect);
}
和
import java.util.Random;
public class Thesis {
public static void main (String [] args){
int correct = 0;
int incorrect = 0;
int rtCorrect = 0;
int rtIncorrect = 0;
int totalRTIncorrect = 0;
int totalRTCorrect = 0;
for (int j = 0; j < 1000;j++){
while(correct<20 && incorrect<20){
Random rand = new Random();
int pickedNumber = rand.nextInt(100);
if (pickedNumber<52){
correct++;
}
else if (pickedNumber>52){
incorrect++;
}
if (correct == 20){
rtCorrect = rtCorrect + correct + incorrect;
}
else if (incorrect == 20){
rtIncorrect = rtIncorrect + incorrect + correct;
}
}
totalRTIncorrect = totalRTIncorrect + rtIncorrect;
totalRTCorrect = totalRTCorrect + rtCorrect;
}
System.out.printf ("\nTotal Correct RT's: %d \nTotal Incorrect RT's: %d", totalRTCorrect, totalRTIncorrect);
//System.out.printf("Correct: %d Incorrect: %d", correct, incorrect);
//System.out.printf ("\nCorrect Response Time: %d\nIncorrect Response Time: %d", rtCorrect, rtIncorrect);
}
}
这些都不是给我什么,我需要一个。第一个只打印1000次程序的一个迭代,第二个给我一个RT为34000,或者任何RT在一次迭代中达到1000,另一个RT为0
是的,您可以在外部循环中调用main()(通过编写另一个main()方法),也可以使用shell脚本调用jvm循环。如何为你的程序做这件事并不重要。 –