| | |
Loop...without the loop
![]() |
•
•
Join Date: Feb 2003
Posts: 35
Reputation:
Solved Threads: 3
Hi. I'm in a Java class at harvard, and they gave us this assignment to create a function moveKiloMile(); , which moves an on-screen robot 1000 units. We can declare the function by using a function moveMile(); , which moves the robot 8 units. Below is the code that I wrote. I'm trying to find out how to do the kilomile function without using a loop, since the professor says that its relatively short.
To download the program we created this in, visit http://www.fas.harvard.edu/~libs111 and click the "Karal" button on the left column.
Thanks!
Ian
Java Syntax (Toggle Plain Text)
class Mover extends UrRobot { void turnAround() { turnLeft(); turnLeft(); } void moveMile() { move(); move(); move(); move(); move(); move(); move(); move(); } void moveKiloMile() { moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); moveMile(); } main { Mover Karel = new Mover (1, 1, East, 0); Karel.turnAround(); Karel.turnAround(); moveMile(); moveKiloMile(); } }
To download the program we created this in, visit http://www.fas.harvard.edu/~libs111 and click the "Karal" button on the left column.
Thanks!
Ian
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:
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.
Other than that, it works!
Java Syntax (Toggle Plain Text)
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.
Other than that, it works! 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:
or, alternatively
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.
Java Syntax (Toggle Plain Text)
loop(1000) { moveMile(); }
or, alternatively
Java Syntax (Toggle Plain Text)
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.
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.
Check out my blog at http://www.shinylight.com for more stuff about web dev.
According to what I saw of the how-to, no labels are supported either. Just functions and function calls!
Then the teacher is whacked.
Check out my blog at http://www.shinylight.com for more stuff about web dev.
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?
•
•
•
•
Originally Posted by theQube
Hi. I'm in a Java class at harvard...
Check out my blog at http://www.shinylight.com for more stuff about web dev.
![]() |
Similar Threads
- loop within a loop (Java)
- Make a for loop, loop until eof (C++)
- Could you tell me what about the difference between While..loop, for..loop ... (Pascal and Delphi)
- My loop won't loop in coin simulation! (C++)
Other Threads in the Java Forum
- Previous Thread: Help With An Online Game!
- Next Thread: Help with java prog...!
| Thread Tools | Search this Thread |
-xlint 911 actionlistener addressbook android api append applet application array arrays automation binary blackberry block bluetooth character class client code compile component consumer csv database desktop developmenthelp eclipse error fractal freeze ftp game gameprogramming givemetehcodez graphics gui html ide image integer j2me j2seprojects japplet java javaarraylist javac javaee javaprojects jni jpanel julia lego linked linux list mac map method methods mobile netbeans notdisplaying number objects online oriented printf problem program project projects recursion replaydirector reporting researchinmotion rotatetext rsa scanner se server set singleton sms sort sql string swing system test textfields threads time title tree tutorial-sample ubuntu update windows working







