Oh my goodness gracious! What I suggest is to possibly use a recursive function, since you can't use a loop. This calls a function multiple times until a condition is met. (You pass the parameters for the condition into the function). Tell me if this works:
void moveKiloMile(int i)
{
if (i > 0)
{
moveMile();
i--;
moveKiloMile(i);
}
}
However, in the main function, you will have to call moveKiloMile(1000) to indicate you want to run moveMile 1000 times. Otherwise, you could do moveKiloMile(5) to run moveMile 5 times, and, well, you get the idea. :D Other than that, it works!
Dani
The Queen of DaniWeb
21,343 posts since Feb 2002
Reputation Points: 1,555
Solved Threads: 367
Skill Endorsements: 121
Just noticed you wrote this isn't in Java, it's in JKarel. I downloaded the JKarel Users Manual you provided a link to, and it says to do this:
loop(1000)
{
moveMile();
}
or, alternatively
int i = 0;
while (i < 1000)
{
moveMile();
i++;
}
Actually, I would assume if your teacher/professor said not to use a "loop" he was referring to the former and wants you to use "while" instead. However, in real programming, the former refers to a for loop while the later refers to a while loop.
In any case, I'm not sure if you can use the code for the "while" I've provided only because I don't see that JKarel supports variables of any kind - only calling functions.
Dani
The Queen of DaniWeb
21,343 posts since Feb 2002
Reputation Points: 1,555
Solved Threads: 367
Skill Endorsements: 121
I don't see how someone can tell you to write something efficient without a loop (in this language anyways). Another way to do it besides recursion is to create a label and jump to it if your language supports it. (Kind of like Basic's GOTO.) Jumps are used more in lower level languages like assembly. This seems to be a higher level one, so a jump wouldn't be the best way but it would work.
samaru
a.k.a inscissor
1,256 posts since Feb 2002
Reputation Points: 262
Solved Threads: 18
Skill Endorsements: 22
According to what I saw of the how-to, no labels are supported either. Just functions and function calls!
Dani
The Queen of DaniWeb
21,343 posts since Feb 2002
Reputation Points: 1,555
Solved Threads: 367
Skill Endorsements: 121
Then the teacher is whacked.
samaru
a.k.a inscissor
1,256 posts since Feb 2002
Reputation Points: 262
Solved Threads: 18
Skill Endorsements: 22
According to the how-to, which is basically meant as an "intro to the java language" there is something called loop(x) where x is an integer value, not a variable. Then there is something else called while(condition). When the teachers says don't use a loop, I think he/she means to use a while. According to the how-to, the "while" isn't associated with a "loop". See what I'm saying?
Dani
The Queen of DaniWeb
21,343 posts since Feb 2002
Reputation Points: 1,555
Solved Threads: 367
Skill Endorsements: 121
Hi. I'm in a Java class at harvard...
But a while is a loop. This is a Harvard teacher?
samaru
a.k.a inscissor
1,256 posts since Feb 2002
Reputation Points: 262
Solved Threads: 18
Skill Endorsements: 22
Please enlighten us. We are confounded computer scientists here.
Dani
The Queen of DaniWeb
21,343 posts since Feb 2002
Reputation Points: 1,555
Solved Threads: 367
Skill Endorsements: 121