我有一个程序,用于处理在不同方法中使用不同的循环。除了调用另一个方法之外,整个程序运行良好。将一种方法调入另一种方法的麻烦
我遇到了调用另一个方法的问题。
我想要做的是:
- 有方法拨打对方并运行它从用户(1 - 100)采用可变 。
- 如果输入了无效输入 ,则增加一个变量。
- 当连续输入3个输入为 时,显示消息并退回到菜单。
被调用的方法在它自己的工作正常,它可以工作,当我打电话。
我无法工作的是3个无效输入后的显示消息。目前,它需要大约7个无效的输入,然后显示消息?
方法的工作原理:
public static boolean processGrade(int percentMark)
{
Menu m = new Menu();
clrscr();
System.out.println("Please enter your mark e.g. 90. (input -1 to exit): ");
percentMark = Genio.getInteger();
if
(percentMark >=70 && percentMark <=100)
{
clrscr();
System.out.println("Your Grade is A - Excellent!\n\n");
pressKey();
clrscr();
}
else if(percentMark >= 60 && percentMark <70)
{
clrscr();
System.out.println("Your Grade is B - Good!\n\n");
pressKey();
clrscr();
}
else if (percentMark >=50 && percentMark <60)
{
clrscr();
System.out.println("Your Grade is C - Ok!\n\n");
pressKey();
clrscr();
}
else if(percentMark >=40 && percentMark <50)
{
clrscr();
System.out.println(" Your Grade is D - Must Do Better!\n\n");
pressKey();
clrscr();
}
else if (percentMark <40 && percentMark >= 0)
{
clrscr();
System.out.println(" Your Grade is E - Must Do Better!\n\n");
pressKey();
clrscr();
}
else if (percentMark < -1 || percentMark >100)
{
clrscr();
System.out.println("ERROR: Value MUST be in the range of 0 - 100!");
pressKey();
clrscr();
return false;
}
else if (percentMark == -1)
{
//clrscr();
System.out.println("You entered -1, you will now return to the menu!");
pressKey();
return false;
}
return true;
}
的方法,我不能去工作,调用上述消息:
public static void processGradeV2(int percentMark)
{
int invalid = 0;
outerloop:
do {
clrscr();
boolean result = processGrade(percentMark);
processGrade(percentMark);// Call processGrade method
if(result == false)
{
invalid++;
}
if(invalid == 3)
{
clrscr();
System.out.println("Sorry, you have entered an invalid integer 3 times in a row! The program will return to the menu screen.");
pressKey();
break outerloop;
//return;
}
if(percentMark == -1)
{
clrscr();
System.out.println("You entered -1, you will now return to the menu!");
pressKey();
clrscr();
break outerloop;
//processUserChoices();
}
}
while(invalid <3);
}
这是否甚至编译? 。对于初学者来说,processGrade(percentMark)有一个void返回类型而不是boolean,但你期望返回一个布尔值?布尔结果= processGrade(百分号) – 2014-11-06 15:42:33
对不起,这是一个粘贴错误。我编辑了代码。整个代码会有帮助吗?我知道很多人讨厌任何人发布过多的代码。这是3班,不是太多。 – DarkBlueMullet 2014-11-06 15:44:11
信息:这里不需要标签。尽量避免它们。为什么你叫'processGrade(percentMark)'两次?仍然是“粘贴错误”? – Tom 2014-11-06 15:46:11