Я искал в Интернете решения этой проблемы часами, но не могу ее найти. Я новичок в Java, поэтому я не понимаю многих ошибок, и поэтому я сам не смог исправить это.Проблемы с назначением переменной для возврата функции
В любом случае, я пытаюсь присвоить значение переменной, а затем добавить значение int из переменной в другую. При компиляции я получаю ошибки: «это не утверждение», и ошибка, которую я пропущу точку с запятой, которая, как я подозреваю, будет очищена, если я исправлю инструкцию.
Здесь ошибка, только в случае, если вам это нужно:
hw8_ex2_jm2rv.java:61: error: ';' expected
int sumOfGames += value;
^
hw8_ex2_jm2rv.java:61: error: not a statement
int sumOfGames += value;
^
2 errors
Это мой код:
public static int oneGame()
{
int trueValue = 1;
int falseValue = 0;
int total = sumTwoDice();
if((total == 7) || (total == 11))
{
//System.out.println(trueValue + " " + total);
return(trueValue);
}
else if((total == 2) || (total == 3) || (total == 12))
{
//System.out.println(falseValue + " " + total);
return(falseValue);
}
else
{
int total2 = 0;
while((total2 != 7) || (total2 != total))
{
total2 = sumTwoDice();
if(total2 == total)
{
//System.out.println(trueValue + " " + total + " " + total2);
return(trueValue);
}
else if(total2 == 7)
{
//System.out.println(falseValue + " " + total + " " + total2);
return(falseValue);
}
}
}
}
Вы, вероятно, интересно о методе sumTwoDice, все это делает возвращать число от 2 до 12, и я уже знаю, что он работает. Если вы хотите его увидеть, я тоже могу опубликовать его, просто спросите.
Функция oneGame просто имитирует игру из крэпса и возвращает целочисленное значение 1 или 0. Если 1 является выигрышем и 0 является потерей.
//this method runs a simulation of n values and returns the avg.
public static double monteCarloSim()
{
int trueValue = 1;
int falseValue = 0;
int sumOfGames = 0;
int n = 2;
for (int i = 0; i <= n; i++)
{
int value = oneGame();
int sumOfGames += value;
}
double avg = sumOfGames/n;
return(avg);
}
В настоящее время у меня только небольшое количество n, так что с ним проще справляться и быстрее компилировать.
Мой главный вопрос: что делает этот оператор недействительным и что я могу сделать, исправить его, но также, поскольку многие потоки не покрывают это при переполнении стека, что делает a заявление недействительным вообще. Надеюсь, это поможет мне и другим новичкам, которые не понимают эту ошибку.
Заранее благодарим за помощь и знания!
Wow! Не могу поверить, что я пропустил это, спасибо за вашу помощь! – jm2rv