FAQ: Conditional Operators - Conditional-And: &&

This community-built FAQ covers the “Conditional-And: &&” exercise from the lesson “Conditional Operators”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn Java

FAQs on the exercise Conditional-And: &&

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!
You can also find further discussion and get answers to your questions over in #get-help.

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head to #get-help and #community:tips-and-resources. If you are wanting feedback or inspiration for a project, check out #project.

Looking for motivation to keep learning? Join our wider discussions in #community

Learn more about how to use this guide.

Found a bug? Report it online, or post in #community:Codecademy-Bug-Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Why is the boolean set to “open” in the reservation class? I thought booleans could only be true or false?

what type does open have?

Got it. Thanks for the pointer

im confused because i have the else if () {} thing done but it keeps on pointing to the parentases saying illegal start of expression

public class Reservation {
  int guestCount;
  int restaurantCapacity;
  boolean isRestaurantOpen;
  boolean isConfirmed;
  
  public Reservation(int count, int capacity, boolean open) {
    guestCount = count;
		restaurantCapacity = capacity;
		isRestaurantOpen = open;
  }  
  
  public void confirmReservation() {
    /* 
       Write conditional
       ~~~~~~~~~~~~~~~~~
       if restaurantCapacity is greater
       or equal to guestCount
       AND
       the restaurant is open:
         print "Reservation confirmed"
         set isConfirmed to true
       else:
         print "Reservation denied"
         set isConfirmed to false
    */
    if (restaurantCapacity>=guestCount&&isRestaurantOpen){
      System.out.println("Reservation confirmed");
      isConfirmed = true;
    } else {
        System.out.println("Reservation denied");
        isConfirmed = false;
    }
  }
  
  public void informUser() {
    System.out.println("Please enjoy your meal!");
  }
  
  public static void main(String[] args) {
    Reservation partyOfThree = new Reservation(3, 12, true);
    Reservation partyOfFour = new Reservation(4, 3, true);
    partyOfThree.confirmReservation();
    partyOfThree.informUser();
    partyOfFour.confirmReservation();
    partyOfFour.informUser();
  }
}

With the output of:

Reservation confirmed
Please enjoy your meal!
Reservation denied
Please enjoy your meal!

why do we add the instance “is confirmed” in the confirmRestaurant method ?

I think it’s to be a trigger for you to correct this. I corrected this with:

public void informUser() {
if(isConfirmed == true){
System.out.println(“Please enjoy your meal!”);
} else {
System.out.println(“We’re sorry but we’re full, hope to see you next time!”);
}

}

I can’t see your code but I stumbled across the same problem. The solution for me was to look into the indentations plus the positions of the curly braces {}. Then I also checked for typos. The best is if you open up the “Introduction to Conditional Operators” page in a separate tab and compare that code with yours. That code is also the whole thing that you will be going through anyways so it’s like a cheat that you can use to peek back on. Hope this will help. :wink:

if (restaurantCapacity>=guestCount&&isRestaurantOpen){
System.out.println(“Reservation confirmed”);
isConfirmed = true;
} else {
System.out.println(“Reservation denied”);
isConfirmed = false;
}
}
This is the section of code I had a problem in. Should’nt the if statement be if(restaurantCapacity>=guestCount&&isRestaurantOpen==true) because the restaurant should be open for the reservation to be made.

Hello @bit7080368435 and welcome to the Codecademy Forums!

Please format your code; instructions are in this article. How do I format code in my posts?

isRestaurantOpen is a boolean, meaning that it takes a value of either true or false. The if conditional takes in an expression that evaluates to true or false.

It is not necessary to use isRestaurantOpen == true because isRestaurantOpen has a value of true. When using any boolean as a condition for an if statement, you can simply input the boolean since the if statement will evaluate whether the boolean is true or false.

Although both if (restaurantCapacity >= guestCount && isRestaurantOpen) and if (restaurantCapacity >= guestCount && isRestaurantOpen == true) will work and give the same result, the == true is redundant and not necessary.

Hope this helps! If I explained it in a way that’s a bit confusing, please let me know!

don’t we have to declare isConfirmed instance in constructor method?
also what’s the point of setting it to true in confirmReservation method?

Hello @seitanex5 and welcome to the Codecademy Forums!

isConfirmed is already declared in this statement.

boolean isConfirmed;

I believe you are trying to ask why we don’t assign a value to the isConfirmed variable. We don’t necessarily need to assign a value for every instance variable by using a constructor. Assigning the value of an instance variable in a constructor simply means that the instance variable is given a value when the object is created. Instance variables can be assigned later on in your code.


The confirmReservation method is used to determine whether or not a reservation is confirmed or denied. The isConfirmed boolean represents if the reservation is confirmed (true) or if it is denied (false). We assign isConfirmed the value of true if the reservation is confirmed. This can be useful if we add some other functionality to our code that requires us to determine if a Reservation is confirmed or not.

Or, you can just simply remove partyOfFour.informUser();
and add a print statement below “Reservation denied”