Sunday, September 10, 2017

Bài 1 - Biến, kiểu dữ liệu, toán tử, vòng lặp

Bạn tải java về cài vào máy tính. Cấu hình máy tính bình thường, không cần mạnh, Ram 1- 2G là được rồi.
Có thể dùng Eclipse hoặc Android Studio để học Java. Nếu dùng Eclipse, phải cài Java 8. Tôi dùng Eclipse để hướng dẫn, trên Android Studio cũng tương tự, cửa sổ có thể hơi khác. Muốn tích hợp Android SDK có thể xem hướng dẫn tại đây.
Cài xong, mở Eclipse ra, trên cùng bên trái nhấn File > New > Java Project
Tại cửa sổ bung ra, ghi tên baidau, ấn finish.
Nháy đúp vào chữ baidau, nháy chuột phải vào chữ src New > Class

Tại cửa sổ bật ra, đặt tên first, finish, màn hình sẽ trông như sau.

Nếu bạn dùng Android Studio, Netbean thì tạo class mới cũng tương tự.
Copy các dòng sau vào trong dấu ngoặc class (nếu chưa có sẵn).
public static void main(String args[])
   {       
      String name="Hello World !";       
      System.out.println(name);
   }
Vào run chọn run hoặc chọn cái dấu tam giác chấm xanh bên dưới. Nếu có thông báo như sau.


Bạn tích vào chỗ Always save resources before launcing, lần sau sẽ không hiện ra nữa.
Nhìn vào chỗ có chữ Console ở dưới, bạn đã có chương trình Java đầu tiên của mình.
Nếu không thấy màn hình Console, thì trên thanh bar của Eclipse, bạn vào Window > Show View > Console để đưa nó ra.

Bạn có thể thắc mắc public là gì, static là gì, void là gì. Đó gọi là các từ khóa của Java. Nói ra thì dài nhưng mới học bạn không cần quan tâm đến chúng. Cả dòng Sysem.out.println cũng vậy, chỉ cần biết đó là cái lệnh để in ra màn hình, vậy thôi.
Từ đây, bạn sẽ luôn sử dụng lệnh in ra màn hình này. Để gõ tắt, bạn gõ sys rồi nhấn tổ hợp phím Ctrl+Space, một cửa sổ gợi ý bật ra để bạn chọn cả đoạn lệnh, ấn Enter để chọn, không cần gõ từng chữ.
Trong đoạn lệnh trên, chỉ chú ý tới dòng String name="Hello World !";
String nghĩa là chuỗi, chữ, đó là kiểu dữ liệu của biến name.
Bây giờ, hay sửa name thành nam xem, màn hình Eclipse sẽ như sau
Dấn đỏ và gạch chân báo cho bạn biết đã có lỗi, gạch chân chữ name tức là lỗi ở đó.

Trong lập trình chữ name gọi là biến, dòng String name=”Hello World !”; gọi là khai báo biến. Vì bạn đã sửa thành nam nên bên dưới chữ name có dấu đỏ do nó chưa được khai báo.
Hãy sửa name thành nam, dấu đỏ sẽ hết.
Để gõ tiếng Viêt, trên thanh bar Eclipse, nháy vào Window > Preferences, tại cửa sổ bật ra, nháy đúp vào General, nháy Workspace, bên dưới chỗ text file endcoding chọn other, UTF-8, nhấn OK.
Bây giờ hãy sửa thành String nam=”Nguyễn Văn A”, thêm vào dòng sau
Int age=20;
Sửa dòng System.out.prinlt thành System.out.println( nam + " is "+ age + " years old!");
Màn hình in ra Nguyen Van A is 20 years old!

Bạn xem ảnh trên sẽ thấy dòng thành System.out.println( nam) đã bị mờ đi. Phía trước nó có 2 dấu gạch, đó gọi là Comment. Để biến cả đoạn dài thành
Khi bạn lập trình, code có thể rất dài, phức tạp, để nhắc mình chỗ này đang làm gì, bạn comment vào đó. Hôm sau làm tiếp xem lại chỗ cũ dễ nhớ ra.
Bất cứ dòng nào không dùng nữa cũng có thể comment, nếu xóa đi lúc sau có thể bạn lại cần, vì thế comment để nó đấy sẽ tiện hơn.
Bây giờ hãy nhìn chữ int trước chữ age. Ta gọi đó là khai báo biến age dạng số nguyên. Nó sẽ khác biến nam, name dạng chữ.
Int, String gọi là các kiểu dữ liệu, sẽ thường xuyên dùng. String là chữ, int là số.
Khi ta viết String a=”8” thì nó là chuỗi, int a=8 thì nó là số.
Để chuyển chuỗi thành số ta có thể dùng lệnh
int a=Integer.parseInt(String);
Ngược lại để chuyển số thành chuỗi ta dùng lệnh.
String b=String.valueOf(number);
Hãy thực hành tiếp như sau.
Thử xóa đi một dấu ngoặc ở cuối, sẽ có một dấu đỏ báo chương trình bị lỗi. Thêm ngoặc vào lại hết. Vậy luôn nhớ rằng bạn mở bao nhiêu ngoặc thì phải đóng lại bấy nhiêu. Khi thấy lỗi đỏ mà không biết tại sao, thử di chuột vào đó xem Eclipse báo lỗi gì.
Gõ tiếp
String gioi="Nam";           
            if(gioi.equals("Nam")){
            System.out.println( nam + " là con trai ");
            }
Ta vừa so sánh String gioi với chữ “Nam”, để so sánh 2 chuỗi, ta dùng .equals() chứ không dùng dấu bằng == như với số, quên điều này có thể bị lỗi dù chương trình vẫn chạy bình thường. Nếu bạn sửa thành dấu == nó vẫn chạy nhưng sau này vào Android, nó thành lỗi rất khó tìm vì Eclipse không báo gì cả. Bạn chỉ biết có lỗi ở đâu đó nên kết quả không như ý. Lúc đó hãy kiểm tra xem có dùng dấu == để so sánh chuỗi không vì bạn rất dễ quên, cứ dùng bừa đi.
Cho hai dấu gạch comment vào  trước dòng System.out.println( nam + " is "+ age + " years old!");
Gõ tiếp int a=12; int b = 15;
age=a+b;
System.out.println(age);
Bây giờ màn hình sẽ in ra số 27. Ở trên age là 20 nhưng giờ là 27 do ta đã gán giá trị age=a+b.

Máy tính đọc các dòng lệnh từ trên xuống dưới, mỗi khi bạn gán giá trị mới cho biến thì giá trị cũ sẽ mất đi.
Gõ xuống dưới dòng age=a+b;
if(a>b){
                  age=10;
            }
            else{
                  age=100;
            }
Chạy thử để màn hình hiện số 100.
Bây giờ xóa đoạn else đi, chạy thử, bạn thấy màn hình Console vẫn ra số 27.
Đó chính là sự khác nhau của lệnh if có đuôi else và không có đuôi else.
Nếu có đuôi else, khi lệnh if không đúng, tức a không lớn hơn b thì age sẽ bằng 100. Nếu chỉ có lệnh if thì age sẽ vẫn là 27, tức giá trị của dòng a+b.
Ban đầu bạn có thể lúng túng không biết lúc nào cần đuôi else, lúc nào không. Cứ thực hành những code tương tự thế này bạn sẽ tự biết khi nào cần, khi nào không.
Gõ tiếp như sau
for(int i=0;i<age;i++){
                  if(i>10)
                  System.out.println(i); 
            }          
      }    
Chú ý cho dòng System.out.println vào trong vòng lặp for. Màn hình Console giờ in ra các số từ 11 đến 26.

Vòng lặp for dùng để lặp lại một lệnh nào đó. Ở trên nếu i lớn hơn 10 thì in ra các giá trị i. Bạn hãy tự nghĩ sẽ thấy, bắt đầu chạy nó sẽ là i=0, vì i không lớn hơn 10 nếu nó không in ra, tiếp theo i=2,3..v.v cứ thế đến lúc bằng 11 nó bắt đầu in ra.
Tức là nó chạy từng giá trị i một, nó là một lệnh nhưng tăng dần i lên.
Sửa lệnh if trong for thành if(i%2==0), chạy thử, màn hình in ra các sỗ chẵn từ 0 đến 27. Dấu % có nghĩa là chia lấy phần dư, nếu chia 2 số dư bằng 0 tức là số chẵn, bằng 1 là số lẻ.

Sửa if thành if(i%5==0), chạy thử, màn hình in ra các số chia hết cho 5
If ở đây không có đuôi else, vì ta không quan tâm những số còn lại, chỉ lấy những số thỏa điều kiện để in ra thôi.
Tiếp theo, rào dòng code System.out.println trong lệnh for lại
Gõ tiếp
double c=12.5;
double d=c/7;
System.out.println(d);
Chữ double có nghĩa đó là số thập phân, dấu gạch là phép chia, màn hình in ra một số thập phân dài.

Copy dòng này vào trên lệnh in, sẽ có lỗi đỏ
DecimalFormat f = new DecimalFormat("#.##");
Bạn ấn tổ hợp Ctrl+Shift+O để nhập thư viện cần dùng vào, bên trên cùng đoạn code sẽ có dòng import. Bạn không cần nhớ các thư viện, cần thì import là xong.

Bây giờ gõ tiếp
String lamtron=f.format(d);
System.out.println(lamtron);
Bây gisẽ in ra màn hình số 1.71 tức đã được làm tròn. Lệnh DecimalFormat đó dùng để làm tròn số thập phân. Muốn có bao nhiêu số sau dấu phảy bạn sửa số dấu #, 2 số sau dấu phảy là 2 dấu #
Bài tập
Dấu nhân là dấu * trên số 8, chia là dấu /, hãy tự tính nhân chia các số, làm tròn kết quả để có 3, 4 chữ số sau dấu phảy.
Chia 19 cho 3, làm tròn còn hai số sau dấu phảy.
In ra màn hình các số lẻ từ 1 đến 100
In ra màn hình các số chia hết cho 3, hoặc 6, hoặc 9 trong khoảng từ 1 đến 100
Nhân liên tiếp các số từ 1 đến n bất kỳ.

Dùng lệnh if như sau, tạo String cacngay=”Thứ hai”, nếu cacngay là thứ hai, in ra màn hình số 2, thứ 3 số 3, cứ vậy, chủ nhật số 8. Đổi giá trị String cacngay để thấy kết quả in ra khác nhau.

No comments:

Post a Comment