undefined

Boolean type

Java Syntax
Level 4 , Lesson 7
Available

"Hi, Amigo. Let me tell you about a new data type. The boolean. Variables of this type can take only two values: true and false."

"How do we use it?"

"This type is implicitly used in many places. Just as any addition operation produces a number, the result of any comparison is a boolean. Here are some examples:"

Code Explanation
1
boolean m;
These two expressions are equivalent. The default value of a boolean variable is false.
2
boolean m = false;
3
if (a > b)
    System.out.println(a);
The result of the comparison (either true or false) will be assigned to the variable m. The condition is satisfied if the expression evaluates to true.
4
boolean m = (a > b);
if (m)
    System.out.println(a);
5
boolean m = (a > b);
if (m == true)
    System.out.println(a);
There is no need to compare a logical (boolean) variable with true or false. The result of the comparison will be a boolean that matches the other variable. For example, true == true evaluates to true; true == false evaluates to false.
6
boolean m = (a > b);
if (m)
    System.out.println(a);

"More examples:"

Code Explanation
1
public boolean isALessThanB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
This method verifies that number a is less than number b.

Here are four equivalent comparisons. The last one is the most compact and correct. Always try to use compact notation.

2
public boolean isALessThanB (int a, int b)
{
   boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3
public boolean isALessThanB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4
public boolean isALessThanB (int a, int b)
{
    return a < b;
}

"What if I want to write 0<a<b?"

"Java doesn't have a comparison operator that takes three operands. So, you would need to do it like this: (0<a) AND (a<b)."

"Do I write the word AND?"

"Wait. I'll explain that. Java has three logical operators: AND, OR and NOT. You can use them to construct conditions of varying complexity. You can use these operators only with boolean expressions. So, you can't write (a+1) AND (3), but (a>1)AND (a<3) is OK."

"The NOT operator is unary: it affects only the expression to the right. It's more like a minus sign before a negative number rather than a multiplication sign between two numbers."

"You can perform various operations on boolean (logical) variables."

"Like what?"

"Let's take a look:"

Logical operator Java notation Expression Result
AND && true && true true
true && false false
false && true false
false && false false
OR || true || true true
true || false true
false || true true
false || false false
NOT ! ! true false
! false true
Common combinations and expressions m && !m false
m || !m true
! (a && b) !a || !b
! (a || b) !a && !b

"Could you give me more examples?"

"Sure:"

Java notation Logical notation
(a<3) && (a>0) (a < 3) AND (a>0)
(a>10) || (a<100) (a>10) OR (a<100)
(a<b) && (!(c<=d)) (a<b) AND (NOT (c<=d))

"Now, do some tasks."

undefined
4
Task
Java Syntax, level 4, lesson 7
Locked
Labels and numbers
Not all labels are equally useful, but sometimes a lack of labels results in chaos. Let's do a task that dishes out labels: use the keyboard to enter an integer, and make the program indicate whether the number is negative or positive (or zero), and even or odd. Why do we need this? Just because, for practice. After all, we're here to learn!
undefined
8
Task
Java Syntax, level 4, lesson 7
Locked
Describing numbers
Suppose we need to separate numbers according to some criteria. For example, based on whether they are even or odd, or based on the number of digits. Have you got a picture of that in your mind? And now for the work: we'll write a program that describes the number entered by the user (it must be in the range from 1 to 999). The description will indicate whether the number is even or odd, and how many digits it has.
undefined
4
Task
Java Syntax, level 4, lesson 7
Locked
Positive number
At the "Optimist" school, the scale used to assess knowledge has neither an upper nor lower bound. This pleases young gifted people (wouldn't you be happy to receive a score of a bazillion for a presentation?). All scores above zero are considered good. Scores below zero are bad. Students must pass final exams in three subjects. We need to enter three scores from the keyboard, and display the number of positive scores.
undefined
4
Task
Java Syntax, level 4, lesson 7
Locked
Positive and negative numbers
Data analysis starts with a simple concept: we need to understand what data matters and should be used, and what data should be discarded. Let's solve a simple data analysis problem. We enter three integers from the keyboard, then we'll analyze them and display the number of positive and negative numbers in the source set.
undefined
2
Task
Java Syntax, level 4, lesson 7
Locked
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
Comments (68)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Dosed Level  9, Macon, United States
21 January 2021
The quests/examples seems pretty useless when trying to do the challenges as there was no mention of divide etc to do these challenges.
Nitin Level  7, Mumbai, India
23 November 2020
found it weird, even for comments inside System.out.println(); the verification is looking for casing. for example : Negative even number I wrote "negative even number" , even thought the program was correct but verification failed cause of this.
mastere Level  9, Rochester, United States
3 November 2020
For the Positive and negative numbers task I forgot to include these (example below) strings in my output and it kept failing for that reason. Otherwise probably would have had it first or second try. Don't forget to add them or you will keep needlessly repeating it like I did. example: Number of positive numbers: 2 Number of negative numbers: 0
mastere Level  9, Rochester, United States
3 November 2020
accidentally wrote the positive numbers task for even numbers instead the first time then when it did not validate I was like: what???? OHHH! I did it for even numbers instead of positive numbers lol. Making things harder on myself because I was not paying attention.
Chandan Thapa Level  22, Dubai, United Arab Emirates
3 October 2020
to meet the last condition in the test "Describing numbers" was a bit challenging for me.. took some time to figure out to use the print properly. good one!!
Mihai Bone Level  8, Bucharest, Romania
2 October 2020
Killing me softly with this exercise !!! Singing my life with this code ...Tra la la la count++ la laaa laaa
ъуъ Level  9, Vilnius, Lithuania
24 September 2020
I suggest You to fix "isALessThenB" to "isALessThanB"
Maryem Vickers Level  7, HT..., United Kingdom
23 July 2020
I've got a nice way of doing those *annoying* code entries XD

All done/ |:)
XD
Aleksandar Neshkovski Level  7, Skopje, Macedonia
22 May 2020
Thinking is so 21st century...
SirSkii Level  12, Chicago, United States
4 March 2020
These tasks do not require complicated solutions. Just stick to the basics! use what codeGym has taught you thus far! I assure you it can be done using only if/else with boolean expressions. Using OOP/Arrays/Loops at this level of experience is unnecessary and I believe harmful to your future learnings. All the tasks are somewhat similar: 1. Read in Integer from keyboard. 2. Parse the integer(s) and store in SEPARATE variables. 3. Complete if else logic using the input integers. Timely route, but it reinforces what we're learning at the moment. I hope this helps!