我的代码无法解决此问题。
我正在做一个测验,但不能再问两次问题,所以我避免了这一点,但是当用尽所有选项时,它就会崩溃。
它也可能是其后的代码,但我不这么认为。
这是我的代码:
private static void chooseQuestion()
{
Random randomQuestion = new Random();
int returnValue = randomQuestion.Next(1, 3);
switch (returnValue)
{
case 1:
if (randomValues.questionOneChosen != 1)
{
questionOne();
}else
{
chooseQuestion();
}
break;
case 2:
if (randomValues.questionTwoChosen != 1)
{
questionTwo();
}else
{
chooseQuestion();
}
break;
}
endQuiz();
}
后面是什么:
private static void endQuiz()
{
Console.Clear();
Console.WriteLine();
text.centered("You completed the QUIZ, well done!");
Console.WriteLine();
text.centeredWrite("Press ENTER to go back to the menu");
string input = Console.ReadLine();
if (input == "")
{
Menu.main();
}else
{
endQuiz();
}
}
如果您需要更多代码来帮助我,请询问我。
提前致谢!
参考方案
StackOverflow上的StackOverflowException,很好!
Menu.main()最终会调用choiceQuestion()吗?
调用函数时,将在堆栈上创建一个新条目,并为其所有局部变量留出空间,并在返回时返回地址。如果函数调用自身(递归调用),则不会释放其原始堆栈条目。如果它经常调用自身而没有返回,则堆栈最终将耗尽空间并给出此异常。话虽如此,堆栈非常大-我认为默认值为1 MB-因此您需要大量递归调用以耗尽它。
您有两个自称的函数。如果他们经常这样做,那么您将耗尽堆栈空间。只需用循环替换递归调用即可。这是您的第一个功能:
private static void chooseQuestion()
{
bool endQuizChosen = false;
while ( !endQuizChosen ) {
Random randomQuestion = new Random();
int returnValue = randomQuestion.Next(1, 3);
// ... the rest of the function ...
endQuizChosen = endQuiz();
}
}
并编辑endQuiz()
使其不调用自身,但如果用户要停止,则返回true
,如果要继续,则返回false
。
我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
改造正在返回一个空的响应主体 - java我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…
每个文件合并后添加换行 - python我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…
Json到php,json_decode返回NULL - php我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…
将ajax的值存储到javascript变量中 - javascript我有一个php文件,其中我从服务器获取数据。该php文件的输出是一个包含json格式数据的变量。PHP文件:<?php $dbHostName = "localhost"; $dbUserName = "venseld"; $dbUserPass = "wecuuu"; $dbName = &…