Java 为什么这个方法和for循环执行的次数比我希望的要多?
我正在处理一个Java问题集,它要求一个特定的方法被执行N次(在本例中,N=5) 然而,出于某种原因,每次我运行程序时,它都会执行(或至少打印)10次。我想不出如何使它只打印5次 我对编程非常陌生,如果这是一个简单的修复,我深表歉意。谢谢你的帮助Java 为什么这个方法和for循环执行的次数比我希望的要多?,java,for-loop,methods,Java,For Loop,Methods,我正在处理一个Java问题集,它要求一个特定的方法被执行N次(在本例中,N=5) 然而,出于某种原因,每次我运行程序时,它都会执行(或至少打印)10次。我想不出如何使它只打印5次 我对编程非常陌生,如果这是一个简单的修复,我深表歉意。谢谢你的帮助 public static void main (String [] args) { final int N = 5; int sum = 0; for (int i = 1; i <= N; i++) {
public static void main (String [] args)
{
final int N = 5;
int sum = 0;
for (int i = 1; i <= N; i++)
{
drunkWalk();
int stepCount = drunkWalk();
sum += stepCount;
if (i == N)
{
System.out.println ("Average # of steps equals " + (sum/N));
}
}
}
public static int drunkWalk ()
{
int start = 5; //initializes variables
int steps = 0;
int position = 0;
System.out.println ("Here we go again...time for a walk!");
do
{
int direction = retInt ();
if (direction%2 == 0) //Determines if it will go left, towards home/0
{
position = start - 1;
}
else //Determines if it will go right, towards jail/10
{
position = start + 1;
}
start = position;
steps++;
} while (position != 0 && position != 10);
System.out.println ("Took " + steps + " steps, and");
if (position == 0)
{
System.out.println ("Landed at HOME");
}
else
{
System.out.println ("Landed in JAIL");
}
System.out.println ();
return steps; //So the sum of the # of steps can continue to be calculated for the sum in main's for loop
}
public static int retInt () //Returns odd or even integer to determine the direction in drunkWalk()
{
return (int)(6 * Math.random ());
}
publicstaticvoidmain(字符串[]args)
{
最终整数N=5;
整数和=0;
对于(int i=1;i
你可以直接调用它两次。删除第一个只运行一次的。请注意,它也不会分配其返回值,因此它不会对返回的结果做任何处理
您可以直接调用它两次。删除第一个要遍历的程序只需一次。请注意,它也不会分配其返回值,因此不会对返回的结果执行任何操作。尝试调试该程序。逐行执行该程序,您将看到所有内容。您正在调用walk()在for循环中执行2次。这是故意的吗?尝试调试程序。逐行执行它,您将看到所有内容。您正在调用在for循环中2次。这是故意的吗?非常感谢你的回答!你是对的,这绝对有效。你如何分配返回值?那部分也一直把我搞糊涂。你已经在第二行分配了返回值:int stepCount=duckwalk();
。这里是duckwalk()的结果
被分配给变量stepCount
非常感谢您的回答!您是对的,这绝对有效。您如何分配返回值?这部分也让我很困惑。您已经在第二行分配了返回值:int stepCount=duckwalk();
。这里是duckwalk()的结果
被分配给变量stepCount
drunkWalk();
int stepCount = drunkWalk();