Flow Control

Conditional Statements

'if', 'else' and 'else if'

if (/* this expression is true */) {
  // run this code
} else if (/* this expression is true */) {
    // run this code
} else {
  // run this code
}
double money = 100.50;
double price = 100.50;

if (money > price) {
  System.out.println("You paid extra, here's your change.");
} else if (money == price) {
  System.out.println("You paid the exact amount, have a nice day!");
} else {
  System.out.println("That's not enough, you still owe me money.");
}

Example:

// what is the output?

if (!true) {
    System.out.println("statement 1");
} else {
    System.out.println("statement 2");
}

'switch' and 'case'

switch (expressionn) {
    case value :
        // statement
        break;

    case value :
        // statement
        break;

    default :
        // statement
        break;
}

The variable used in a switch statement can only be integers, convertable integers (byte, short, char), strings and enums

int day = 7;
String dayString;
switch (day) {
    case 1:  dayString = "Sunday";
             break;
    case 2:  dayString = "Monday";
             break;
    case 3:  dayString = "Tuesday";
             break;
    case 4:  dayString = "Wednesday";
             break;
    case 5:  dayString = "Thursday";
             break;
    case 6:  dayString = "Friday";
             break;
    case 7:  dayString = "Saturday";
             break;
    default: dayString = "Invalid day";
             break;
}
System.out.println(dayString);

Example:

Ternary Operator

if (expression) {
    // expressionTrue
} else {
    // expressionFalse
}

(expression) ? expressionTrue : expressionFalse;

Sama dengan:

int number = 10;
String result;

if (number >= 0) {
   result = "positive";
} else {
   result = "negative";
}

System.out.println(number + " adalah bilangan " + result);
int number = 10;
String result;

result = number >= 0 ? "positive" : "negative";
System.out.println(number + " adalah bilangan " + result);

Example:

Boolean Data Type

Boolean

 

Boolean is a data type that only has two possible values: true or false

Boolean Operator

int a = 1;
int b = 2;

System.out.println(a == b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
System.out.println(a != b);

Boolean Operator (1)

// Operator && (AND)
// What are the results of these:

System.out.println(true && true);
// true

System.out.println(true && false);
// false

System.out.println(false && true);
// false

System.out.println(false && false);
// false

Boolean Operator (2)

// Operator || (OR)
// What are the results of these:

System.out.println(true || true);
// true

System.out.println(true || false);
// true

System.out.println(false || true);
// true

System.out.println(false || false);
// false

Exercise (1)

 

1. Even or odd numbers

prints "even" if the number is an even number

prints "odd" if the number is an odd number

 

Use if-else and ternary operator

Exercise (2)


Write a series of conditional statements that:

  • prints "not a group" if musicians is less than  or equal to 0
  • prints "solo" if musicians is equal to 1
  • prints "duet" if musicians is equal to 2
  • prints "trio" if musicians is equal to 3
  • prints "quartet" if musicians is equal to 4
  • prints "this is a large group" if musicians is      greater than 4

Exercise (3)

3. Favorite Programming Language

If user inputs with one of "Java", "Ruby", and "Python", program will answer with the name of its founder. For instance, "Ruby is created by Yukihiro Matsumoto". If user input other programming languages, program will answer with, "Sorry, I don't know that programming language"

import java.util.Scanner;

class FavoriteLanguage {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String language = in.nextLine();

        // your code
    }
}

Exercise (4)

  • A ≥  87
  • 78 ≤ AB < 87
  • 69 ≤ B < 78
  • 60 ≤ BC < 69
  • 51 ≤ C < 60
  • 41 ≤ D < 51
  • E < 41

4. Show random value by grade (use switch-case)

    Use Random class in Java

    Write a series of conditional statements that:

import java.util.Scanner;
import java.util.Random.*;

class RandomValue {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String grade = in.nextLine();
        double value;

        // your code here
        System.out.println("Value = " + value);
    }
}

Solution

Exercise (1)

class Exercise1 {
    public static void main(String[] args) {
        int number = 10;
        
        // if-else statement
        if (number % 2 == 0) {
            System.out.println(number + " is a even number");
        } else {
            System.out.println(number + " is a odd number");
        }

        // ternary operator
        String result = (number % 2 == 0) ? number + " is a even number" : number + " is a odd number";
    }
}

Exercise (2)

class Exercise2 {
    public static void main(String[] args) {
        int musicians = 10;
        
        // if-else statement
        if (musicians <= 0) {
            System.out.println("not a group");
        } else if (musicians == 1){
            System.out.println("solo");
        } else if (musicians == 2){
            System.out.println("duet");
        } else if (musicians == 3){
            System.out.println("trio");
        } else if (musicians == 4){
            System.out.println("quartet");
        } else {
            System.out.println("its a large group");
        }
    }
}

Exercise (3)

import java.util.Scanner;

class FavoriteLanguage {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String language = in.nextLine();

        // if-else statement
        if (language.toLowerCase().equals("ruby")) {
            System.out.println(language + " is created by Yukihiro Matsumoto");
        } else if (language.toLowerCase().equals("java")) {
            System.out.println(language + " is created by James Gosling");
        } else if (language.toLowerCase().equals("python")) {
            System.out.println(language + " is created by Guido van Rossum");
        } else {
            System.out.println("Sorry, I don't know that programming language");
        }
    }
}

Exercise (4)

import java.util.Scanner;
import java.util.Random.*;

class RandomValue {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String grade = in.nextLine();
        double value = 0.0;

        // create random object
        Random random = new Random();

        int min = 0;
        int max = 100;

        if (grade.toLowerCase().equals("a")) {
            min = 87;
        } else if (grade.toLowerCase().equals("ab")) {
            min = 78;
            max = 86;
        } else if (grade.toLowerCase().equals("b")) {
            min = 69;
            max = 77;
        } else if (grade.toLowerCase().equals("bc")) {
            min = 60;
            max = 68;
        } else if (grade.toLowerCase().equals("c")) {
            min = 51;
            max = 59;
        }else if (grade.toLowerCase().equals("d")) {
            min = 41;
            max = 50;
        }else {
            max = 40;
        }
        
        value = min + ((max - min) * random.nextDouble());
        System.out.println("Value = " + value);
    }
}

Flow Control

By Nur Ratna Sari

Flow Control

  • 79