Chuỗi - String Java (Bài trước)
(Bài tiếp) Mảng Java
if && || ! switch while for do while break; continue;

Cấu trúc điều khiển if

if đơn giản

Lệnh if đơn giản kiểm tra nếu điều kiện là đúng thì thi hành khối lệnh thích hợp.

if (condition) {
    //thi hành nếu điều kiện condition là true
}
int x = 7;
if(x < 42) {
    System.out.println("Hi");
}

Điều kiện logic nhận giá trị false, true ví dụ như x < 42 ở trên là điều kiện kiểm tra, ta có thể sử dụng các toán tử so sánh

<nhỏ hơn
> lớn hơn
!= khác
== bằng (lưu ý so sánh string sử dụng stringobject.equals()
<= nhỏ hơn hoặc bằng
>= lớn hơn hoặc bằng

if ... else ...

Nếu điều kiện đúng thi hành khối lệnh thứ nhất, nếu sai thi hành khối lệnh sau else

import java.util.Scanner;
public class Program {
    public static void main(String[] args) {
        int age;
        Scanner agescan = new Scanner(System.in);
        age= agescan.nextInt();
        if (age < 16) {
            System.out.println("Too Young");
        } else {
            System.out.println("Welcome!");
        }
    }
}

Câu lệnh else if

Kiểm tra nhiều điều kiện, điều kiện nào đúng thì thi hành khối lệnh tương ứng

import java.util.Scanner;

public class Program {
    public static void main(String[] args) {
        int age = 25;
        Scanner ageScan = new Scanner(System.in);
        age = ageScan.nextInt();

        if(age <= 0) {
            System.out.println("Error");
        } else if(age <= 16) {
            System.out.println("Too Young");
        } else if(age < 100) {
            System.out.println("Welcome!");
        } else {
            System.out.println("Really?");
        }
    }
}

Toán tử logic && || !

Để kiểm tra nhiều điều kiện ta sử dụng toán tử và && (cả hai điều kiện đúng trả về true), toán tử hoặc || (trả về true nếu có ít nhất một điều kiện true), giúp cho việc tránh viết các lệnh if lồng nhau. Ngoài ra là toán tử phủ định ! (trả về true nếu biểu thức là false và ngược lại)

 if (age > 18) {
   if (money > 500) {
      System.out.println("Welcome!");
   }
}

Viết lại thành

if ((age > 18) && (money > 500)) {
   System.out.println("Welcome!");
}

Ví dụ toán tử hoặc ||

int age = 25;
int money = 100;

if ((age > 18) || (money > 500)) {
   System.out.println("Welcome!");
}
//Outputs "Welcome!"

Ví dụ toán tử phủ định !

int age = 25;
if(!(age > 18)) {
   System.out.println("Too Young");
} else {
   System.out.println("Welcome");
}
//Outputs "Welcome"

Lệnh switch

Lệnh switch rẽ nhánh, nó kiểm tra biến với một danh sách giá trị. Một giá trị gọi là một trường hợp case, và khối lệnh thi hành từ đó nếu điều kiện kiểm tra trên là đúng.

Cú pháp lệnh switch

switch (expression) {
    case value1 :
     //các lệnh
        break; //tùy chọn
    case value2 :
     //các lệnh
        break; //tùy chọn

    // ... các case khác

    default : //tùy chọn
       //Statements
}

Khi chạy cấu trúc trên, expression bằng giá trị nào của trong các case thì sẽ thi hành bắt đầu từ case đó, cho đến khi gặp một break; (nếu không có break; nào thì sẽ thi hành tất cả các code từ case đó đến hết)

Nếu expression không bằng giá trị nào trong các case thì có hai trường hợp xảy ra: Nếu có khối default: thì sẽ chạy code từ đây, nếu không có default: khi không có code nào trong khối switch thi hành.

int day = 3;
//int day = 6;

switch(day) {
    case 6:
        System.out.println("Saturday");
    break;
    case 7:
        System.out.println("Sunday");
    break;
    default:
        System.out.println("Weekday");
}
//Xuất "Weekday"
//Nếu int day = 6; xuất: "Saturday"

Vòng lặp while

Vòng lặp while thi hành khối lệnh khi mà điều kiện kiểm tra vẫn là true

int x = 3;

while(x > 0) {
    System.out.println(x);
    x--;
}

/*
Xuất ra:
3
2
1
*/

Ví dụ trên, đầu tiên kiểm tra (x > 0) nếu true sẽ thi hành khối lệnh { ... }, hết khối lệnh quay lại quá trình trên cho đến khi (x > 0) là false. Lưu ý viết vòng lặp cần chú ý nếu không sẽ rơi vào vòng lặp vô tận. Ví dụ thay x-- bằng x++ ở ví dụ trên.

Vòng lặp for

Nếu số lần lặp biết rõ, nên sử dụng vòng lặp for với cú pháp:

for (initialization; condition; increment/decrement) {
    //Các lệnh thi hành
}

Initialization : biểu thức thi hành một lần khi bắt đầu vòng lặp
Condition : mỗi lần kiểm tra điều kiện này là true thì khối lệnh thi hành, nếu false sẽ thoát khỏi vòng lặp.
Increment/Decrement : thi hành mỗi lần đến cuỗi vòng lặp

for(int x = 1; x <=5; x++) {
  System.out.println(x);
}

/* Xuất ra
1
2
3
4
5
*/

Ví dụ trên vòng lặp for hoạt động như sau: lần đầu gán x = 1; tiếp theo kiểm tra (x <=5) nếu sai thoát ngay khỏi vòng lặp, nếu đúng thi hành khối lệnh, đến cuỗi thi hành x++ và lại bắt đầu lại từ kiểm tra (x <= 5)

Ví dụ in các số chẵn từ 0 đến 10

for(int x=0; x<=10; x=x+2) {
    System.out.println(x);
}

Vòng lặp do ... while

Tương tự vòng lặp while nhưng khối lệnh thi hành trước rồi mới kiểm tra điều kiện, nếu điều kiện đúng thì lặp lại. Có nghĩa là do ... while khối lệnh luôn có ít nhất một lần được thi hành

int x = 1;
do {
     System.out.println(x);
     x++;
   }
while(x < 5);

/*
    1
    2
    3
    4
*/

Điều khiển vòng lặp bằng break; và continue;

Bên trong khối lệnh của các vòng lặp như for, while có thể điều khiển lại vòng lặp bằng cách sử dụng các lệnh break; hoặc continue;

break; sẽ kết thúc vòng lặp ngay lập tức

int x = 1;

while(x > 0) {
 System.out.println(x);
  if(x == 4) {
    break;
  }
  x++;
}

/* Xuất
1
2
3
4
*/

continue; bỏ qua các lệnh phía sau của nó và đi thẳng đến điều kiện kiểm tra để lặp tiếp theo

for(int x=10; x<=40; x=x+10) {
  if(x == 30) {
    continue;
  }
  System.out.println(x);
}

/* Xuất ra
  10
  20
  40
*/

Đăng ký nhận bài viết mới
Chuỗi - String Java (Bài trước)
(Bài tiếp) Mảng Java