As of recent, I kinda got bored and decided to make a simple elevator program using recursion. What is recursion? Recursion is calling a method inside of itself. It's like a cycle. The water cycle, per se. Rain falls, evaporates, falls again.
// This is the method that we will be using.
public static void NextFloor(int num) {
// Always ask the user where they would like to go.
System.out.println("Now where would you like to go?");
// Get the next location
int nextFloor = scanner.nextInt();
// Inform the user that we are moving
System.out.println("Going to floor " + nextFloor + " from floor " + num);
// We can now call the method and start recursioning! (is that even a word?)
NextFloor(nextFloor);
}
As you can see, we are calling NextFloor
inside of itself. But what I triggering the method to start? In our main method of course.
// Import the scanner so that we can take in user input
import java.util.Scanner;
//Our basic starter
public class Elevator {
// Make our scanner public so that we can call it in more than one method!
public static Scanner scanner = new Scanner(System.in);
// Our Main Method - where we will be calling the function
public static void main(String[] args) {
// Ask the user where they would like to go.
System.out.println("Which floor would you like to go to?");
// Get the floor they want to go to.
int floor = scanner.nextInt();
// Its safe to assume the user is starting on the first floor.
int currentFloor = 0;
// Let the user know we are moving!
System.out.println("Now moving to floor " + floor + " from floor " + currentFloor);
// We could ignore this part and just say "NextFloor(floor) but your choice.
currentFloor = floor;
// Now we can call the method
NextFloor(currentFloor);
}
Now that we have everything we needed defined, lets put it all together!
import java.util.Scanner;
public class Elevator {
public static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Which floor would you like to go to?");
int floor = scanner.nextInt();
Boolean isMoving = true;
int currentFloor = 0;
System.out.println("Now moving to floor " + floor + " from floor " + currentFloor);
currentFloor = floor;
NextFloor(currentFloor);
}
public static void NextFloor(int num) {
System.out.println("Now where would you like to go?");
int nextFloor = scanner.nextInt();
System.out.println("Going to floor " + nextFloor + " from floor " + num);
NextFloor(nextFloor);
}
}
Now, I challenge thee to make it better, detect when its moving, where its at while its moving, and maybe add a cooldown!
Congratulations @zothuro! You received a personal award!
Happy Birthday! - You are on the Steem blockchain for 1 year!
Click here to view your Board
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @zothuro! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit