/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

[Tự Học Java] MOB1014-Java 1 - Bài 3 - Vòng Lặp - P1/2

NỘI DUNG:
1. Lý thuyết và ví dụ
     A. Vòng lặp
     B. Break/Continue
 
2. Bài tập


THỰC HIỆN:

1. Lý thuyết và ví dụ

A. Vòng lặp WHILE, FOR, DO... WHILE

Sử dụng vòng lặp khi: Một đoạn code/mã lệnh trong chương trình được thực hiện lặp đi lặp lại cho đến khi thoả mãn một điều kiện nào đó thì nó sẽ kết thúc.

Các vòng lặp phổ biến: WHILE, FOR, DO... WHILE

  • WHILE:
Ví dụ 1.1: Xuất ra màn hình 10 lần chuỗi ký "Vong lap WHILE"

Code:
public class Vidu_3_While {
    public static void main(String[] args) {
        int i = 1; // khởi tạo i = 1
        while (i <= 10) { // điều kiện dừng, dừng khi i > 10
          System.out.println("Vong lap WHILE");
          i++; // tăng i lên 1
        }
    }
}

HOẶC xuất thêm giá trị của biến i mỗi khi thực hiện lệnh in chuỗi trên
Code:
public class Vidu_3_While {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 10) {
          System.out.println("Vong lap WHILE. Gia tri cua i lan thu: " + i);
          i++;
        }
    }
}

  • FOR:
Ví dụ 1.2: Yêu cầu tương tự ví dụ 1.1, nhưng chúng ta dùng FOR để lặp lại.
public class Vidu_3_For {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) { // biến khởi tạo; điều kiện; tăng giá trị của biến
            System.out.println("Vong lap FOR cung tuong tu WHILE. Gia tri cua i lan thu: " + i);
        }
    }
}

Nhận xét: Cách hoạt động của FOR cũng tương tự như WHILE, tuy nhiên cách trình bày các biến khởi tạo, điều kiện dừng, tăng giá trị của biến chúng để chung trên một dòng.

  • DO...WHILE: Cũng tương tự như WHILE nhưng nó thực hiện trước sau đó mới kiểm tra điều kiện. Cũng có nghĩa là vòng lặp sẽ chạy ít nhất một lần ngay cả khi điều kiện vẫn thỏa mãn
Ví dụ 1.3
Code:
public class Vidu_3_DoWhile {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println("Vong lap DO ... WHILE. Gia tri cua i lan thu: " + i);
            i++;
        }
        while (i <= 10);
    }
}

Noted: ĐỪNG QUÊN tăng biến được sử dụng trong điều kiện, nếu không vòng lặp sẽ không bao giờ kết thúc, hay bị lặp vô tận!

Ví dụ 1.4: Viết chương trình đọc dữ liệu từ bàn phím nếu số < 0 (hay số nguyên âm) thì yêu cầu nhập lại, và kết thúc chương trình khi nhập số nguyên dương (bỏ qua việc kiểm tra dữ liệu đầu vào ký tự)

Code:
public class Vidu_1_4 {
    public static void main(String[] args) {
        int so=0;
        Scanner in = new Scanner(System.in);       
        do{
            System.out.print("Nhap so duong: ");
            so = in.nextInt();
            if (so < 0) System.out.println("Nhap vao so > 0");
        }while(so < 0);
        
    }
}


Ví dụ 1.5: Viết chương trình đọc điểm (số nguyên dương) nhập vào trong khoảng từ 0 đến 10

Code:
public class Vidu_1_5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double diem = 0;
        do{
            System.out.print("nhap diem(0-10): ");
            diem = scanner.nextDouble();
        }
        while(diem < 0 || diem > 10);
        System.out.printf("Diem da nhap: %.1f", diem); // định dạng kiể fload là lấy 1 số thập phân
    }
}

B. Break/Continue

  • Break: Câu break lệnh cũng có thể được sử dụng để nhảy/thoát ra khỏi vòng lặp
Ví dụ:
public class lap_break {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
               break; // nếu i = 5 thì thoát khỏi vòng lặp
            }
            System.out.print(i+" ");
        }
    }
}
  • Continue: Câu continue lệnh ngắt/bỏ qua một lần lặp và không thực hiện khối lệnh phía sau nó (trong vòng lặp), nếu một điều kiện cụ thể xảy ra và tiếp tục với lần lặp tiếp theo trong vòng lặp.
Ví dụ:
public class lap_continue {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                continue; // bỏ qua KHÔNG IN giá trị i = 5
            }
            System.out.print(i+" ");
        }
    }
}


2. Bài tập

2.1 Viết chương trình in ra bảng cửu chương 7
  • Dùng WHILE
Code:
public class Baitap_BangCuuChuong {
    
    public static void main(String[] args) {
        System.out.println("In cuu chuong 7");       
        int i = 1;
        while(i<= 10){
            System.out.println("7 x " + i + " = " + (7 * i));
            i++;
        }
    }
}

  • Dùng FOR
Code:
public class Baitap_BangCuuChuong {
    
    public static void main(String[] args) {
        System.out.println("In cuu chuong 7");       
        for (int i = 1;i<= 10; i++){
            System.out.println("7 x " + i + " = " + (7 * i));
            
        }
    }
}

2.2 Viết chương trình nhập số nguyên từ bàn phím, xuất ra bảng cửu chương của số vừa nhập

Code:
import java.util.Scanner;
public class Baitap_BangCuuChuong {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.print("Nhap n: ");
        int n = in.nextInt();
        System.out.println("=== Bang cuu chuong " + n + " ===");
        int i=1;    
        while(i<= 10){
            System.out.println(n+" x "+i+" = "+(n*i));
            i++;
        }
    }
}

2.3 Viết chương trình in ra bảng cửu chương 2 đến bảng cửu chương 9, dùng phương thức gọi hàm và các vòng lặp lồng nhau

Code:
public class Baitap_BangCuuChuong {
    
    public static void main(String[] args) {
        
        for(int n = 2; n < 10; n++ ){
            inBangCuuChuong(n);
        }
    }
    
    static void inBangCuuChuong(int n){
        System.out.println();
        System.out.println("=== Bang cuu chuong " + n + " ===");
        int i=1;    
        while(i<= 10){
            System.out.printf("%d x %d = %d %n",n, i,(n*i));
            i++;
        }    
    }
}

P/s: Các bạn cũng có thể viết theo cách của mình 

Ví dụ 2.4:  Viết chương trình in ra bảng cửu chương 2 đến bảng cửu chương 9. Kết quả xuất theo hàng ngang của mỗi bảng cửu chương trên một cột

Gợi ý:
public class ForLongNhau {
    public static void main(String[] args) {
        for(int i=1;i<=10;i++){
            for(int j=2;j<=9;j++){
                System.out.printf("%d x %d = %d \t", j, i, i*j); // chú ý i, j
            }
            System.out.println("");
        }
    }
}

2.5 Viết chương trình tính trung bình cộng các số chia hết cho 3 từ 27 đến 33

Code:
public class Vidu_2_5 {
    public static void main(String[] args) {
        int min = 27, max= 33;        
        int i=0,dem=0,tong = 0;
        i=min;
        while(i <= max){
            if(i%3 ==0){
                tong += i;
                dem++;
            }         
            i++;
        }
        System.out.printf("TB cac so CHIA HET cho 3 tu %d den %d = %d",min,max,tong/dem);
    }
}


xong!

No comments:

Post a Comment

/*header slide*/