1. Trang chủ
  2. » Công Nghệ Thông Tin

Lap Trinh java bai giang chuong 2

74 412 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 865,88 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình cơ bản với Java Tác giả: PGS.TS Trần Văn Lăng, Ths. Chu Nguyên Hoàng Minh Giúp các bạn tiếp cần gần hơn với bộ môn lập trình để trở thành một Lập trình viên suất sắc Lập trình cơ bản với Java Tác giả: PGS.TS Trần Văn Lăng, Ths. Chu Nguyên Hoàng Minh Giúp các bạn tiếp cần gần hơn với bộ môn lập trình để trở thành một Lập trình viên suất sắc

Trang 1

Sau khi học xong bài này sinh viên sẽ nắm được

 Các thành phần cơ bản của ngôn ngữ JAVA

 Kiểu dữ liệu, biến, hằng

Bảng phân chia thời lượng

Trọng tâm bài giảng

 Các thành phần cơ bản của ngôn ngữ JAVA

 Kiểu dữ liệu, biến, hằng

 Biểu thức và toán tử

Trang 2

2.1 Các thành phần cơ bản trong ngôn ngữ Java([1] trang 19, [2] trang 21)

2.1.1 Bộ ký tự dùng trong Java (Character Set)

gôn ngữ ava được d ng tr n b t g m chữ c i ho chữ c i thường z, 10 chữ số 0 9, c c hiệu to n học + - * / % = () , dấu nối _, c c hiệu đặc biệt h c ; {} [ ] ? \ & | # $

Ngôn ngữ Java sử dụng b ký t chuẩn quốc tế Unicode Khác với ký t CII d i

b t, t Unicode dài 16 bit Nó không chỉ bao g m những ký t trong b ký t ASCII

mà còn có vài triệu ký t h c tương ứng với hầu hết các bảng chữ cái trên thế giới

2.1.2 Từ khóa (Keyword)

Là những từ định nghĩ trước trong , có nghĩ c định, phải dùng đúng cú

h , đều viết bằng chữ thường, không dùng vào việc khác ha đặt tên mới trùng từ khoá

Từ khoá g m có từ khóa h i b o, điều khiển, kiểu dữ liệu, toán tử

 Từ khóa khai báo public, private, static, abstract, extends, const,

im ort, c ge, cl ss, interf ce, im lement, new…

 Từ khóa điều khiển switch, case, break, if, return, for, while, continue, tr , c tch, throws…

 Từ khóa toán tử inst nceof…

 Từ khóa kiểu dữ liệu boolean, char, short, long, double, int, byte, flo t, null, oid…

2.1.3 Tên (Identifier)

Là m t dãy ký t chỉ tên gói, giao diện, lớp, biến, hàm, hằng, có phân biệt chữ hoa, thường Tên bắt đầu bằng ký t hoặc dấu $ _, nhưng hông thể bắt đầu bằng m t số, không có dấu cách trong tên, và còn có thể dùng b ký t Unicode để đặt tên Ngoài ra

Trang 3

22

khi đặt tên, nên tránh m t số ký hiệu như % @ *… ốn được dùng trong Java với nghĩ riêng

hi đặt tên nên theo quy tắc đặt c c t n định nghĩ sẵn của Java cho dễ nhớ như s u

 Tên gói viết chữ thường

 Tên lớp, giao diện bắt đầu bằng chữ hoa

 Tên biến, hàm bắt đầu bằng chữ thường

 Tên hằng viết chữ hoa

2.1.4 Lời chú thích

h m o chương trình ới mục đ ch giải th ch, giú cho người lập trình dễ dàng bổ sung, sửa chữa, nâng cấ chương trình hi chạ chương trình, trình dịch sẽ bỏ qua chú thích Các lời chú thích có thể được thêm vào trong mã ngu n Java giống như trong C++, có thể đặt tại bất kỳ vị trí nào

Bắt đầu lời chú thích với dấu /* và kết thúc bởi */,cho hé đặt nhiều dòng chú thích trong cặp dấu trên

Đặt dấu // và ghi lời chú th ch s u đó tr n cùng m t dòng

Tạo chú thích trong tập tin tài liệu html

Sử dụng tiện ích javadoc tạo tập tin html cùng tên với tập tin ngu n j , để tổng kết, giới thiệu các thành phần trong chương trình ếu muốn bổ sung các chú thích vào tập tin html này, bạn ghi vào tậ tin j như s u

í dụ /* * Chú thích này có ý nghĩ cho tiện ích javadoc, sẽ là m t phần

của tài liệu được t đ ng phát sinh bởi tiện ích javadoc

*/

Cách tạo tập tin vidu.html từ tập tin vidu.java

javadoc vidu.java 

Chú ý lớp ViDu trong ViDu.java phải khai báo public hay protected

2.2 Kiểu dữ liệu cơ sở, biến, hằng ([1] trang 23, [2] trang 21)

2.2.1 Kiểu dữ liệu cơ sở

Ngôn ngữ lập trình java có 8 kiểu dữ liệu cơ sở byte, short, int, long, float, double, boolean và char

Trang 4

23

¸9223372036854775807

2.2.1.1 Kiểu số nguyên

Java cung cấp 4 kiểu số nguyên khác nhau là byte, short, int, long Kích t hước, giá trị nhỏ nhất, lớn nhất, cũng như giá trị mặc định của các kiểu dữ liệu số nguyên được mô

tả chi tiết trong bảng trên

Kiểu mặc định của các số nguyên là kiểu int

Các số nguyên kiểu byte và short rất ít khi được dùng

Trong java không có kiểu số nguyên không dấu như trong ngôn ngữ C/C++

Khai báo và khởi tạo giá trị cho các biến kiểu nguyên

int x = 0;

Trang 5

24

long y = 100;

Một số lưu ý đối với các phép toán trên số nguyên

Nếu hai toán hạng kiểu long thì kết quả là kiểu long

M t trong hai toán hạng không phải kiểu long sẽ được chuyển thành kiểu long trước khi th c hiện phép toán

Nếu hai toán hạng đầu không phải kiểu long thì phép tính sẽ th c hiện với kiểu int Các toán hạng kiểu byte hay short sẽ được chuyển sang kiểu int trước khi th c hiện phép toán

Trong java không thể chuyển biến kiểu int và kiểu boolean như trong ngôn ngữ C/C++

Ví dụ: có đoạn chương trình như sau

Kiểu float có kích thước 4 byte và giá trị mặc định là 0.0f

Kiểu double có kích thước 8 byte và giá trị mặc định là 0.0d

Số kiểu dấu chấm đ ng không có giá trị nhỏ nhất cũng không có giá trị lớn nhất Chúng có thể nhận các giá trị

 Số âm

 Số dương

 Vô c c âm

 Vô c c dương

Trang 6

25

Khai báo và khởi tạo giá trị cho các biến kiểu dấu chấm đ ng

float x = 100.0/7;

double y = 1.56E6;

M t số lưu ý đối với các phép toán trên số dấu chấm đ ng

 Nếu m i toán hạng đều có kiểu dấu chấm đ ng thì phép toán chuyển thành phép toán dấu chấm đ ng

 Nếu có m t toán hạng là double thì các toán hạng còn lại sẽ được chuyển thành kiểu double trước khi th c hiện phép toán

 Biến kiểu float và double có thể ép chuyển sang kiểu dữ liệu khác trừ kiểu boolean

2.2.1.3 Kiểu ký tự (char)

Kiểu ký t trong ngôn ngữ lập trình java có kích thước là 2 bytes và chỉ dùng để biểu diễn các ký t trong b mã Unicode Như vậy kiểu char trong java có thể biểu diễn tất cả 216 = 65536 ký t khác nhau

Giá trị mặc định cho m t biến kiểu char là null

2.2.1.4 Kiểu luận lý (boolean)

Kiểu boolean chỉ nhận 1 trong 2 giá trị true hoặc false

Trong java kiểu boolean không thể chuyển thành kiểu nguyên và ngược lại

Giá trị mặc định của kiểu boolean là false

2.2.2 Biến (Variable)

Biếnn làà v ngg n ớ dùnớ g đểể lưuu trữữ c c c giáá trịị củaa chương trình M ii biếnn gắnn lềnn vớii

m tt kiểuu dữữ lệuu vàà m tt định danh d y nhấty t gọii làà tênn biến

Tên biến hông thường làà m tt chu ii các ký t (Unicode),, kýý số

Tênn biếnn p ảii bắtt đầuu bằng m tt chữữ c i, m tt dấuu gạchh dướii hayy dấuu dolar

Tênn biếnn k ôn đượcc trùng vớii c c từc ừ k óaa

Tênn biếnn kh ngg cóó khoảngg trắng ở giữaở a tên

Trong java,, biếnn cóó thểể đượcc k aii báoo ở bấtở t kỳỳ nơii đâu rongg chươngg trìn

Cách h khai i báo

<kiểu dữ_lệu>> <tên_ iến>;

Trang 7

26

<kiểu dữ_lệu>> <tên_ iến>> == <giá_trị>;

Gán n giá á trị ị cho o biến

<tên biến>> == <giá_trị>;

Biến công cộng (toàn cục) là biến có thể truy xuất ở khắp nơi trong chương trình,

thường được khai báo dùng từ khóa public, hoặc đặt chúng trong m t class

Biến cục bộ là biến chỉ có thể truy xuất trong khối lệnh nó khai báo

Lưu ý: Trong ngôn ngữ lập trình java có phân biệt chữ in hoa và in thường Vì

vậy chúng ta cần lưu ý khi đặt tên cho các đối tương dữ liệu cũng như các xử lý trong chương trình

System.out.println("x = " + x); System.out.println("y = " + y);

System.out.println("z = x + y =" + z); System.out.println("So nho hon la so." + Math.min(x, y));

Trang 8

27

ụ: final int max = 10;

Bình thường hằng ngu n được ghi dưới dạng thậ h n (cơ số 10), muốn diễn đạt hằng nguyên ở dạng b t h n (cơ số 8), ghi 0 đầu ti n ương t , muốn diễn đạt hằng nguyên ở dạng thập lục h n (cơ số 16), ghi 0 đầu tiên

ụ: 017 0x1fe

Java xem hằng nguyên thu c kiểu int, trừ khi trị ngu n ượt quá phạm vi kiểu int,

hi đó hằng nguyên thu c kiểu long Muốn có hằng nguyên nhỏ thu c kiểu long, bạn thêm l hay L vào cuối trị số Hằng nguyên có thể được gán cho biến thu c kiểu byte hay short miễn là trị ngu n được g n hông ượt quá phạm vi của các kiểu này

ụ: 25L

Hằng số th c được Java mặc nhiên hiểu là trị thu c kiểu double, bạn có thể ghi thêm

D hay F (d hay f) ở cuối trị số để khẳng định rõ trị số thu c kiểu double hay float Hằng

Trang 9

28

\udddd t ứng ới mã Unicode dddd Hằng chu i diễn đạt m t chu i ký t kiểu tring, được ghi trong cặp dấu nháy kép

ụ: “Em còn nhớ hay em đã quên\n”

2.3 Biểu thức và toán tử ([1] trang 89, [2] trang 37)

2.3.1 Biểu thức (Expression)

Biểu thức l m t công thức t nh to n m t gi trị theo qu tắc to n học, cấu tạo từ c c

to n hạng (O er nd) hằng, h m, biến nối ết ới nh u bởi c c to n tử (O er tor) C c

to n hạng trong mọi biểu thức hải tương th ch ới nh u ề iểu t biểu thức có thể l biểu thức số học, logic, t , chu i hi ết quả củ biểu thức có iểu tương ứng

: Biểu thức đơn giản nhất l biến h hằng

22 a "Hello"

2.3.2 Toán tử (Operator)

o n tử l hiệu đặc biệt dùng để ết hợ c c to n hạng, dùng trong c c biểu thức

2.3.2.1 Các toán tử số học (Arithmetic Operator)

Phé to n số học sử dụng tr n c c to n hạng có iểu số trả ề ết quả iểu số

+ C ng h i to n hạng op1 + op2

op1, op2 là các toán hạng kiểu số

Với hé chi o 1 / o , nếu o 1, o đều là số nguyên thì phép chia này cho kết quả là số nguyên, nếu m t trong hai số op1, op2 hay cả hai số đều là số th c sẽ cho kết quả số th c

ụ 2:

class ArithmeticDemo {

Trang 10

2.3.2.2 Các toán tử tăng, giảm (Increment, Decrement Operator)

Phé to n tăng giảm sử dụng cho các biến iểu số nguyên và kiểu ký t

 op ++ hay ++ op tăng biến số nguyên lên m t đơn ị, hay cho ký

ụ 2: char c = ‘a’;

c++; //Kết quả là c=‘b’

2.3.2.3 Toán tử quan hệ hay so sánh (Comparison Operator)

Phé to n so s nh luôn cho ết quả có iểu logic

Trang 11

30

ụ: 155 > 25 4.5 <8 ‘B’ < ‘A’

2.3.2.4 Toán tử logic (Boolean Operator)

Phé to n logic chỉ dụng cho c c to n hạng iểu logic, cho ết quả iểu logic

& hay && Và (And) op1&& op2

Trang 12

31

ương t với phép | và phép ||, ở phép || chỉ cần m t toán hạng bên trái trả về true, toán hạng bên phải sẽ được bỏ qu hông t nh đến

2.3.2.5 Các toán tử làm việc với bit

L c c to n tử l m iệc tr n từng bit củ số ngu n

<< Dịch tr i n bit op << n

>> Dịch hải n bit op >> n

>>> Dịch hải n bit

điền 0 o những ch ừ dịch

Trang 13

32

4 << 2 = 4 * 2 2 = 16

Phép dịch phải không dấu đi n bitsẽ điền 0 vào các bít bên trái cho cả số dương

âm

 2 biểu diễn nhị phân là 00000000 00000000 00000000 00000010

 -2 biểu diễn nhị phân là 11111111 11111111 11111111 11111110

 -2 >>>24 = 255 00000000 00000000 00000000 11111111

2.3.2.6 Toán tử gán (Assignment Operator)

Toán tử g n = dùng để g n gi trị của m t biểu thức Exp cho m t biến Var Phép toán gán trả về giá trị là giá trị của biểu thức Exp

Var=Exp;

V ụ: x = 10;

Có thể dùng to n tử g n nhiều lần li n tiế trong c u lệnh

: x = y = z = 0; //Cả ba biến x y đều được gán giá trị 0 char c = ‘a’;

c = (char) (c+4); //c+4 là mã unicode của ký tự ‘e’ cho kết quả là ‘e’

Java còn cung cấp các toán tử rút gọn ( horth nd ssignment O er tor) như s u

%= Chi lấ hần dư r i g n r = r % E p var %= Exp

&= nd từng bit r i g n r = r E var &= Exp

^= or từng bit r i g n r = E var ^= Exp

<<= Dịch tr i r i g n var <<= Exp var <<= Exp

>>= Dịch hải r i g n var >>= Exp var >>= Exp

Trang 14

? op1 ? op2 op3

Phé to n điều iện nếu to n hạng logic o 1 có trị true thì trả ề gi trị

() op(params) Định nghĩ hoặc gọi m t h m có tên

l o ới c c th m đối l params

(type) (type) op Chu ển đổi iểu dữ liệu củ to n hạng

o s ng iểu t e

Instanceo

f op1 instanceof op2

Phé to n c i đặt trả ề true nếu đối tượng o 1 l m t c i đặt củ lớ o

hé nối c c chu i, nếu có to n hạng

n o hông hải chu i, t đ ng

chu ển s ng chu i

ụ 1 int x, a = 2, b = 5; x = a>b ? a b;

System.out.println(a>b ? ”So a lon hon” ”So b lon hon”);

ụ 2 “Họ và tên của học viên " + soTT + " là “ hoTen

“ 2 2 = “ (2 + 2)

Trang 15

34

2.3.3 Độ ưu tiên các phép toán

Đ ưu ti n củ c c hé to n trong biểu thức th c hiện theo thứ t từ tr n uống như trong bảng s u, tr n cùng m t dòng cùng mức ưu ti n thì th c hiện từ tr i qu hải, bạn có thể chủ đ ng qu định thứ t th c hiện hé to n trong biểu thức bằng những cặ ngoặc tròn ( ), trong ngoặc sẽ th c hiện trước, ngoặc trong th c hiện trước, ngoặc ngo i th c hiện s u

( ), [], ,op++, op

Dấu để tru uất biến, h m củ đối

tượng, lớ , tru uất hần tử củ

Trang 16

35

2.4 Lệnh (Statement)([1] trang 25, [2] trang 51)

Lệnh có thể là lệnh đơn, hối lệnh hay cấu trúc điều khiển

{ // khối 1

{ // khối 2

lệnh 2.1 lệnh 2.2

… } // kết thúc khối lệnh 2 lệnh 1.1 lệnh 1.2

… } // kết thúc khối lệnh 1

{ // bắt đầu khối lệnh 3

// Các lệnh thu c khối lệnh 3 // …

} // kết thúc thối lệnh 3

2.5 Cấu trúc điều khiển ([1] trang 25, [2] trang 51)

2.5.1 Cấu trúc if…else

Trang 17

 Boolean-Expression là biểu thức điều iện có iểu logic

 t tement1, t tement có thể l lệnh đơn, hối lệnh, h cấu trúc điều hiển

Trang 18

public static void main(String[] args) throws IOException {

BufferedReader kbd = new BufferedReader(new InputStreamReader

Trang 19

38

else s="co mot nghiem la "+(-c/b);

else { double delta=b*b-4*a*c;

if (delta<0) s="vo nghiem";

else if (delta==0) s="co nghiem kep la "+(-b/(2*a));

else s= "co 2 nghiem x1= "+ ((-b+Math.sqrt(delta))/(2*a))+

" va x2= "+((-b-Math.sqrt(delta))/(2*a));

} System.out.println("Phuong trinh "+s);

}

}

2.5.2 Cấu trúc Switch

switch là câu lệnh l a chọn, cho phép rẻ nhánh th c hiện lệnh theo nhiều hướng

h c nh u căn cứ trên giá trị của m t biểu thức

 Expression Biểu thức điều kiện có kiểu byte, short, int, char

 t tement1,… t tementn+1 có thể là nhiều lệnh đơn, h cấu trúc điều hiển

 Expression1, … Expressionn các biểu thức hằng (toán hạng là các giá trị hay hằng)

Trang 20

39

Th c hiện lệnh 1, lệnh 2, …lệnh n khi biểu thức có giá trị bằng biểu thức 1,

biểu thức , …biểu thức n tương ứng, nếu biểu thức không bằng các giá trị đó thì lệnh n+1 theo s u def ult được th c hiện (nếu có default) Câu lệnh bre l m cho chương trình có thể tho t hỏi lệnh switch, nếu không có break, Java sẽ tiếp tục thi hành tuần t các câu lệnh trong switch

ếu hông có bre , hướng th c hiện là

Ví dụ: Nhậ th ng, năm in r số ng trong th ng, biết rằng tháng 1, 3, 5, 7, 8,

10, 12 số ng trong tháng là 31, tháng 4, 6, 9, 11 số ng trong th ng l 30, th ng năm nhuận số ng l 9, năm hông nhuận số ng l ăm nhuận l năm chi hết cho 00, h năm chi hết cho hông chi hết cho 100

class NumberDay {

public static void main(String[] args) {

int month = 7, year = 2004, numDays = 0;

switch (month) { case 1

case 3

case 5

case 7

Trang 21

case 11.numDays = 30; break;

case 2 if (year % 4= =0 && year % 100 != 0 || year % 400= =0)

numDays = 29 else numDays = 28;

if (numDays >0) System.out.println("So ngay trong thang la " + numDays);

else System.out.println(“Thang khong hop le”);

 Statement có thể là lệnh đơn, hối lệnh, hay cấu trúc điều hiển

 Initialization-Expressions hần hởi tạo thường l c c biểu thức khởi tạo giá trị cho c c biến điều hiển òng lặ , c ch nh u dấu hẩ

 Boolean-Expression l biểu thức điều iện có iểu logic, thường l biểu thức so sánh giá trị củ biến điều hiển ới giá trị kết thúc vòng lặp

 Increment-Expressions phần tăng thường l c c biểu thức tăng giảm giá trị biến điều hiển òng lặ , c ch nh u dấu hẩ

Khi lệnh lặp For bắt đầu, phần khởi tạo được th c hiện trước, và th c hiện

duy nhất m t lần, s u đó biểu thức điều kiện được kiểm tra, nếu biểu thức đúng thì lệnh sẽ được th c hiện, tiếp theo th c hiện phần tăng của vòng lặp và quá trình kiểm tr biểu thức

Trang 22

public static void main(String[] args) {

System.out.println("Trau dung Trau nam Trau gia");

Trang 23

 Statement có thể l lệnh đơn, hối lệnh, h cấu trúc điều hiển

 Boolean-Expression l biểu thức điều iện có iểu logic

iểm tr chừng n o biểu thức điều iện còn thoả mãn thì còn th c hiện

lệnh

ụ ìm ước số chung lớn nhất củ số ,

Ph n t ch nếu = thì U CL củ l , nếu thì U CL củ , cũng

là USCLN của x-y và y

Do đó t th số lớn trong h i số , bằng hiệu số củ chúng cho đến hi h i số bằng nh u, thì đó l ước số chung lớn nhất củ h i số ,

Trang 24

 Statement có thể là lệnh đơn, hối lệnh, h cấu trúc điều hiển

 Boolean-Expression l biểu thức điều iện có iểu logic

Đầu ti n sẽ th c hiện lệnh, s u đó iểm tra biểu thức điều iện, nếu biểu

thức đúng, thì òng lặ tiế tục, nếu biểu thức sai thì thoát vòng lặp

ụ 1 Lặ chương trình nhiều lần

while (true) {

InputStreamReader kbd = new InputStreamReader(System.in);

System.out.println(“Ban co muon tiep tuc khong”);

char c = (char) kbd.read();

if (c!=’Y’ && c!=’y’) break;

InputStreamReader kbd = new InputStreamReader(System.in);

System.out.println(“Ban co muon tiep tuc khong”);

Trang 25

44

char c = (char) kbd.read();

}

while (c=’y’ || c==’Y’);

ụ 2: Cho biết số ngu n dương n có hải là số ngu n tố hông

Ph n t ch n l số ngu n tố hi n chi hông chẵn cho bất ỳ số n o từ đến căn bậc hai củ n, ì ậ lần lượt ét n có chi hết cho c c số từ đến căn bậc hai của n, cho đến khi xét hết h tìm được m t số m n chi hết

if (i > k) System.out.println(n+" la so nguyen to");

else System.out.println(n+" khong la so nguyen to");

} }

2.5.3.4 Các lệnh điều khiển khác

 Lệnh break

Cú pháp break;

Ý nghĩa Lệnh bre dùng để tho t tức thời ra khỏi vòng lặ while, do… while, for

hay lệnh rẻ nhánh switch chứa nó và th c hiện lệnh tiếp theo

Lệnh break Label; dừng vòng lặp tức thời và quay về nhãn L bel n nhãn đặt theo

qu ước đặt tên củ , ghi trong chương trình có dạng

Label

Statement;

Trang 26

Lệnh continue Label bỏ qua các lệnh sau continue và quay về nhãn Label

2.6 Ngoại lệ và câu lệnh bắt ngoại lệ ([2] trang 329)

goại lệ trong l c c đối tượng có iểu lớ định nghĩ sẵn, biểu diễn trạng th i

l i t đ ng h t sinh trong trường hợ n o đó hi m t h m được th c hiện C c h m trong được định nghĩ sẵn trong trường hợ n o thì có iểu ngoại lệ n o đó sẽ h t sinh hi m t ngoại lệ nả sinh, có thể l chọn h i hả năng ử l bắt l i h cho qu Lệnh ử l ngoại lệ th c hiện thông qu năm từ ho try, catch, finally, throw và throws

Trang 27

46

catch đi èm ới tr , để bắt ngoại lệ Những câu lệnh trong chương trình m bạn

muốn bắt ngoại lệ được đư o giữ hối tr , nếu m t ngoại lệ xả r trong hối tr , thân của mệnh đề c tch có iểu ngoại lệ tương ứng sẽ được th c hiện Có thể có nhiều mệnh đề c tch bắt c c iểu ngoại lệ khác nhau

finally thân của mệnh đề fin ll luôn luôn th c hiện trước khi lệnh tr ết thúc,

cho dù có hay không có ngoại lệ, mệnh đề fin ll có thể có h hông

2.6.3 Lệnh throw

Cú pháp throw Exception-Instance;

Exception-Instance l m t đối tượng củ iểu ngoại lệ

Có h i c ch tạo m t đối tượng iểu ngoại lệ dùng m t th m đối trong mệnh đề

c tch h tạo m t đối tượng mới bằng to n tử new

Ví ụ: throw new NumberFormatException();

.C u lệnh throw được đư o hối tr , cho hé bạn điều hiển điều iện

h t sinh ngoại lệ hi gặ lệnh throw, c c c u lệnh s u throw sẽ được bỏ qu , lệnh tr chứ lệnh throw, sẽ tìm hối lệnh củ mệnh đề c tch có iểu ngoại lệ tương ứng để th c hiện

ụ: iết chương trình nhậ o họ t n, năm sinh ới điều iện họ t n hông

qu 5 t , năm sinh từ 19 0 đến 19 5

import java.io.*;

class Nhap {

Trang 28

47

Cho qua kiểu ngo i lệ IOException là lỗi nhập xuất phát sinh khi thực hiện hàm readLine() của lớp BufferedReader

public static void main (String[] args) throws IOException{

BufferedReader kbd = new BufferedReader(new InputStreamReader (System.in));

Điều kiện phát sinh lỗi định d ng số NumberFormatException

if (ns<1980 || ns>1985) throw new NumberFormatException(); System.out.println("Nam sinh la "+ns);

Trang 29

48

}

Trang 30

49

2.7 Mảng (Array) ([2] trang 253)

Mảng là m t cấu trúc lưu giữ c c th nh hần có cùng iểu, chiều d i mảng cố định

i th nh hần của mảng được tru uất bởi chỉ số của nó trong mảng

ếu bạn muốn lưu giữ c c th nh hần h c iểu nh u h ch thước mảng có thể

th đổi đ ng, dùng m t Vector thay cho mảng

2.7.1 Mảng 1 chiều

Khai báo m t biến th m chiếu đến mảng

Khai báo m t biến dùng để th m chiếu đến mảng các thành phần kiểu ArrayType, nhưng hông có mảng nào thật s t n tại

ArrayType[] ArrayName;

iểu dữ liệu th nh hần có thể l bất ỳ iểu cơ sở h th m chiếu

int[] m;// Khai báo một mảng số nguyên String[] s; //Khai báo một mảng các chuỗi

ụ: m = new int[10]; // t o một mảng số nguyên

Bạn có thể ết hợ h i b o biến mảng và tạo mảng như s u

ArrayType[] ArrayName= newArrayType[ArraySize];

Có thể iết như s u

ArrayTypeArrayName[]= newArrayType[ArraySize];

ụ: int[] m = new int[10];

int m[] = new int[10];

ArrayName[index]

index chỉ ị tr củ th nh hần trong mảng cần tru uất, có thể l gi trị, biến h

biểu thức, có gi trị từ 0 đến ArraySize-1

Trang 31

50

Ví dụ: m[0] = 20;

L ớc m ng

ArrayName.length Khởi tạo giá trị u c a m ng

Mảng có thể khởi tạo khi khai báo không dùng toán tử new Mảng khởi tạo là danh sách c c biểu thức c ch nh u dấu hẩ , đặt trong ngoặc móc Chiều d i mảng l số thành phần giữa hai dấu {và }

ụ 1: boolean[] answers = {true, false, true, true, false};

int monthDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};

ụ : class ThamDoi {

public static void main (String[] args) {

for (int i=0; i < args.length; i++)

Khi chạ chương trình

Javac thamdoi.java java ThamDoi Thu tham doi dong lenh 

Cho kết quả Tham doi thu 0 Thu

java ThamDoi Thu “tham doi” “dong lenh” 

Cho kết quả Tham doi thu 0 Thu

Trang 32

3) Có nhiều thuật giải sắ ế , t chỉ khảo sát thuật giải l a chọn đơn giản

Lần lượt duyệt từ vị tr đầu ti n đến ị tr cuối dã , so s nh ho n ị hần tử ở vị

tr đó ới lần lượt các hần tử còn lại củ dã (nếu chúng chư có thứ t đúng), s u m i lần du ệt, tại vị tr đ ng ét sẽ c định được hần tử thích hợp

double[] a = new double[10];

BufferedReader kbd=new BufferedReader(new InputStreamReader (System.in));

System.out.print(“So phan tu cua mang la.”);

Trang 33

52

int max =0;

for (int i=1; i<n;i++)

if (a[max] <a[i]) max = i;

System.out.println(“Phan tu lon nhat dau tien cua day la phan tu thu.”

max ” co gia tri la “ a[max]);

//Tìm ph n tử đ u tiên của dãy số có giá trịx

System.out.print(“Nhap tri can tim ”);

s=kbd.readLine();

double x =Double.parseDouble(s);

int i=0;

while (i<n && a[i] != x) i++;

if (i<n) System.out.println(“Phan tu dau tien co gia tri “ x

” la phan tu thu “ i);

else System.out.println(“Gia tri “ x ” khong co trong mang”);

Sắp xếp dãy số theo thứ tự tăng d n

System.out.println(“ ay so thuc sau khi sap xep la ”);

for (i=0;i<n;i++)

System.out.print(a[i] ”\t”);

System.out.println();

}

Trang 34

53

}

2.7.2 Mảng đa chiều ( rrays of rrays)

Mảng có thể chứ c c th nh hần l mảng Để khai báo m t biến mảng đ chiều cần

c định m i chiều của mảng bằng c ch sử dụng các cặ dấu ngoặc vuông

ụ Khai báo mảng chiều

int m[][]= new int[4][5];

int[][]m= new int[4][5];

m là m t mảng 4 dòng, 5 c t, có th nh hần l c c số ngu n

Các mảng con có thể có chiều d i h c nh u, hi đó bạn h i b o như s u

ụ: int m[][] = new int[2][];

m[0] = new int[3];

m[1] = new int[4];

Khởi tạo giá trị đầu cho mảng

ụ: String[][] nhom = {{"Hoa", "Thu", "Hue", "Cuc", "Lan"},

{"Xuan" "Ha" "Thu" " ong”}};

ụ: Tạo ma trận các phần tử số nguyên có giá trị bằng chỉ số hàng + chỉ số c t

của phần tử In ma trận

public class MaTran {

public static void main(String[] args) {

int[][] a = new int[4][5];

//Nhập ma trận for (int i = 0; i < a.length; i++) for (int j = 0;j<a[i].length; j++) a[i][j] = i + j;

Trang 35

54

} }

System.out.println(“Nhập lỗi!”);

} System.out.println(“Ky tu vua nhap.” + ch);

Trang 36

public static void main(String args[]){

int arrInt[] = new int[10];

public static void main(String args[]){

int nums[] = new int[10];

int min, max;

nums[0] = 99;

nums[1] = -10;

Trang 37

min = max = nums[0];

for(int i=1; i < 10; i++){

if(nums[i] < min) min = nums[i];

if(nums[i] > max) max = nums[i];

} System.out.println("min and max " + min + " " + max);

min = max = nums[0];

for(int i=1; i < 10; i++){

if(nums[i] < min) min = nums[i];

if(nums[i] > max) max = nums[i];

} System.out.println("Min and max " + min + " " + max);

}

}

Ngày đăng: 19/02/2016, 22:02

HÌNH ẢNH LIÊN QUAN

Bảng phân chia thời lượng. - Lap Trinh java  bai giang chuong 2
Bảng ph ân chia thời lượng (Trang 1)

TỪ KHÓA LIÊN QUAN