Chapter 4 คำสั่งควบคุม (control statement) If statement Switch statement...
-
Upload
ellen-blair -
Category
Documents
-
view
229 -
download
0
Transcript of Chapter 4 คำสั่งควบคุม (control statement) If statement Switch statement...
1
Chapter 4 คำ��สั่��งคำวบคำม (control statement)
•If statement•Switch statement•While loop and do-while loop•For loop and for-each loop•Break and continue
2
If statement
• ม� syntax ดั�งนี้��if (booleanExpression) {
statement (s)}
• หรื�อif (booleanExpression) {
statement (s)} else {
statement (s)}
3
public class MainClass {
public static void main(String[] args) { int x = 9; if (x > 4) { // statements } }}
public class MainClass {
public static void main(String[] args) { int a = 3; if (a > 3) { // statements } else { // statements } }
}
4
public class MainClass { public static void main(String[] args) {
int a = 3; if (a > 3) a++; else a = 3; }
}
public class MainClass {
public static void main(String[] args) { int a = 3, b = 1;
if (a > 0 || b < 5) if (a > 2) System.out.println("a > 2"); else System.out.println("a < 2"); }
}
5
public class MainClass {
public static void main(String[] args) { int a = 3, b = 1;
if (a > 0 || b < 5) { if (a > 2) { System.out.println("a > 2"); } else { System.out.println("a < 2"); } } }
}
6
Multi selection
if (booleanExpression1) { // statements} else if (booleanExpression2) { // statements}...else { // statements}
7
Multi selection• public class MainClass {
public static void main(String[] args) { int a = 0; if (a == 1) { System.out.println("one"); } else if (a == 2) { System.out.println("two"); } else if (a == 3) { System.out.println("three"); } else { System.out.println("invalid"); } }}
8
public class MainClass {
public static void main(String[] arg) { int a = 2; if (a == 0) { System.out.println("in the block"); if (a == 2) { System.out.println("a is 0"); } else { System.out.println("a is not 2"); }
} else { System.out.println("a is not 0"); } }}
9
public class MainClass {
public static void main(String[] arg) { int value = 8; int count = 10; int limit = 11;
if (++value % 2 == 0 && ++count < limit) { System.out.println("here"); System.out.println(value); System.out.println(count); } System.out.println("there"); System.out.println(value); System.out.println(count); }}
10
public class MainClass {
public static void main(String[] arg) { int value = 8; int count = 10; int limit = 11;
if (++value % 2 != 0 || ++count < limit) { System.out.println("here"); System.out.println(value); System.out.println(count); } System.out.println("there"); System.out.println(value); System.out.println(count); }}
11
switch statement switch (expression) {case value_1 :
statement (s); break;case value_2 : statement (s); break; . . .case value_n : statement (s); break;default: statement (s);}
12
public class MainClass {
public static void main(String[] args) { int i = 1; switch (i) { case 1 : System.out.println("One."); break; case 2 : System.out.println("Two."); break; case 3 : System.out.println("Three."); break; default: System.out.println("You did not enter a valid value."); } }
}
13
• public class MainClass { public static void main(String[] args) { int choice = 2;
switch (choice) { case 1: System.out.println("Choice 1 selected"); break; case 2: System.out.println("Choice 2 selected"); break; case 3: System.out.println("Choice 3 selected"); break; default: System.out.println("Default"); break; } }}
Output : Choice 2 selected
14
public class MainClass { public static void main(String[] args) { char yesNo = 'N';
switch(yesNo) { case 'n': case 'N': System.out.println("No selected"); break; case 'y': case 'Y': System.out.println("Yes selected"); break; } }}
Output : No selected
15
• public class Main {
public static void main(String[] args) { int i = 0; switch (i) {
case 0: System.out.println("i is 0"); case 1: System.out.println("i is 1"); case 2: System.out.println("i is 2"); default: System.out.println("Free flowing switch example!"); } }}/*i is 0i is 1i is 2Free flowing switch example!*/
16
• public class Main {
public static void main(String[] args) { int i = 0; switch (i) { case 0: int j = 1; switch (j) { case 0: System.out.println("i is 0, j is 0"); break; case 1: System.out.println("i is 0, j is 1"); break; default: System.out.println("nested default case!!"); } break; default: System.out.println("No matching case found!!"); } }}//i is 0, j is 1
17
while statement• while (booleanExpression) {
statement (s)}
• public class MainClass {
public static void main(String[] args) { int i = 0; while (i < 3) { System.out.println(i); i++; } }
}
18
• public class MainClass { public static void main(String[] args) { int limit = 20; int sum = 0; int i = 1;
while (i <= limit) { sum += i++; } System.out.println("sum = " + sum); }}
• sum = 210
19
• public class MainClass { public static void main(String[] args) { double r = 0; while(r < 0.99d) { r = Math.random(); System.out.println(r); } }}
20
do-while statement• do {
statement (s)} while (booleanExpression);
• public class MainClass {
public static void main(String[] args) { int i = 0; do { System.out.println(i); i++; } while (i < 3); }
}Output :0 1 2
21
• public class MainClass {
public static void main(String[] args) { int j = 4; do { System.out.println(j); j++; } while (j < 3); }
}• Output : 4
22
• public class MainClass { public static void main(String[] args) { int limit = 20; int sum = 0; int i = 1;
do { sum += i; i++; } while (i <= limit);
System.out.println("sum = " + sum); }}
• Output : sum = 210
23
for statement
• for ( init ; booleanExpression ; update ) { statement (s)}
• เรื��มกำ��หนี้ดัคำ�� init กำ�อนี้กำ�รืทำ��คำ��สั่��งรือบแรืกำ.• booleanExpression จะถู�กำปรืะเม�นี้คำว�มจรื�ง ถู��เป นี้จรื�งจะทำ��statement(s)
• คำ��สั่��ง update จะถู�กำทำ��หลั�งจ�กำม�กำ�รืทำ��คำ��สั่��งจนี้สั่��นี้สั่ดัblock.
• คำ��ของ init, expression, แลัะ update สั่�ม�รืถูลัะไดั�
24
คำ��สั่��งภ�ยในี้ block จะหยดักำรืะทำ��เม��อเกำ�ดัเง��อนี้ไขคำ�
• booleanExpression ถู�กำปรืะเม�นี้ม�คำ��เป นี้เทำ'จ• พบคำ��สั่��ง break หรื�อ continue .• เกำ�ดั runtime error
25
public class MainClass {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(i + " ");
} }}
public class MainClass {
public static void main(String[] args) { int j = 0; for (; j < 3; j++) { System.out.println(j); } // j is visible here }
}
26
public class MainClass {
public static void main(String[] args) {
int k = 0; for (; k < 3;) {
System.out.println(k);
k++; } }
}
public class MainClass {
public static void main(String[] args) { int m = 0; for (;;) { System.out.println(m); m++; if (m > 4) { break; } } }
}
28
public class MainClass { public static void main(String[] args) { for (int i = 0; i < 8; i++) { System.out.println("Hi."); } }}
public class MainClass { public static void main(String[] args) { int limit = 20; // Sum from 1 to this value int sum = 0; // Accumulate sum in this variable
for (int i = 1; i <= limit; i++) { sum = sum + i; } System.out.println("sum = " + sum); }}
29
public class Main {
public static void main(String[] args) { for (;;) { System.out.println("Hello"); break; } }}//Hello
• public class MainClass {
public static void main(String[] arg) { int limit = 10; int sum = 0; for (int i = 1, j = 0; i <= limit; i++, j++) { sum += i * j; } System.out.println(sum); }}
• 330
30
public class Main { public static void main(String[] args) { for (int i = 0, j = 1, k = 2; i < 5; i++){ System.out.println("I : " + i + ",j : " + j + ", k : " + k); } }}/*I : 0,j : 1, k : 2I : 1,j : 1, k : 2I : 2,j : 1, k : 2I : 3,j : 1, k : 2I : 4,j : 1, k : 2*/
public class Main { public static void main(String[] args) { for (int i = 0, j = 0; i < 5; i++, j--) System.out.println("i = " + i + " j= " + j); }}/*i = 0 j= 0i = 1 j= -1i = 2 j= -2i = 3 j= -3i = 4 j= -4*/
31
public class MainClass {
public static void main(String[] arg) { int limit = 10; int sum = 0;
for (int i = 1; i <= limit;) { sum += i++; } System.out.println(sum); }}
• public class MainClass {
public static void main(String[] arg) { int limit = 10; int sum = 0;
int i = 1; for (; i <= limit;) { sum += i++; } System.out.println(sum); }
}• 55
32
public class MainClass {
public static void main(String[] arg) { for (double radius = 1.0; radius <= 2.0; radius += 0.2) { System.out.println("radius = " + radius + "area = " + Math.PI * radius * radius); } }
}
• outputradius = 1.0area = 3.141592653589793radius = 1.2area = 4.523893421169302radius = 1.4area = 6.157521601035994 radius = 1.5999999999999999area = 8.04247719318987radius = 1.7999999999999998area = 10.178760197630927radius = 1.9999999999999998area = 12.566370614359169
33
public class MainClass { public static void main(String[] args) { long limit = 20L; long factorial = 1L;
for (long i = 1L; i <= limit; i++) { factorial = 1L;
for (long factor = 2; factor <= i; factor++) { factorial *= factor; } System.out.println(i + "! is " + factorial); } }}
34
public class MainClass { public static void main(String[] args) { int i = 0; outer: for (; true;) { inner: for (; i < 10; i++) { System.out.println("i = " + i); if (i == 2) { System.out.println("continue"); continue; } if (i == 3) { System.out.println("break"); i++; break; } if (i == 7) { System.out.println("continue outer"); i++; continue outer; }
if (i == 8) { System.out.println("break outer"); break outer; } for (int k = 0; k < 5; k++) { if (k == 3) { System.out.println("continue inner"); continue inner; } } } } }}
36
• public class MainClass { public static void main(String args[]) { int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for(int x : nums) { System.out.print(x + " "); x = x * 10; // no effect on nums } System.out.println();
for(int x : nums) System.out.print(x + " ");
System.out.println(); } }
37
• for (type identifier : iterable_expression) { // statements}
• public class MainClass { enum Season { spring, summer, fall, winter }
public static void main(String[] args) { for (Season season : Season.values()) { System.out.println(" The season is now " + season); } }}
38
• public class MainClass { public static void main(String args[]) { int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int sum = 0;
// use for-each style for to display and sum the values for(int x : nums) { System.out.println("Value is: " + x); sum += x; }
System.out.println("Summation: " + sum); } }
39
• public class MainClass {
public static void main(String[] arg) { char[] vowels = { 'a', 'e', 'i', 'o', 'u'}; for(char ch: vowels){ System.out.println(ch); } }}
40
• public class MainClass { public static void main(String args[]) { int sum = 0; int nums[][] = new int[3][5];
// give nums some values for (int i = 0; i < 3; i++) for (int j = 0; j < 5; j++) nums[i][j] = (i + 1) * (j + 1);
// use for-each for to display and sum the values for (int x[] : nums) { for (int y : x) { System.out.println("Value is: " + y); sum += y; } } System.out.println("Summation: " + sum); }}
41
break statement • คำ��สั่��ง break จะออกำจ�กำ loop โดัยจะไม� execute คำ��สั่��งทำ��เหลั�อของ
statements.
• public class MainClass {
public static void main(String[] args) { int i = 0; while (true) { System.out.println(i); i++; if (i > 3) { break; } } }
}
42
• public class MainClass { public static void main(String[] args) { int count = 50;
for (int j = 1; j < count; j++) { if (count % j == 0) { System.out.println("Breaking!!"); break; } } }}
43
• public class MainClass { public static void main(String[] args) {
OuterLoop: for (int i = 2;; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { continue OuterLoop; } }
System.out.println(i); if (i == 107) { break; } } }}
44
• public class Main { public static void main(String args[]) {
int len = 100; int key = 50; int k = 0; out: { for (int i = 0; i < len; i++) { for (int j = 0; j < len; j++) { if (i == key) { break out; } k += 1; } } } System.out.println(k); }}
45
• public class MainClass { public static void main(String[] args) {
OuterLoop: for (int i = 2;; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { continue OuterLoop; } } System.out.println(i); if (i == 37) { break OuterLoop; } } }}
46
• public class MainClass { public static void main(String args[]) { int sum = 0; int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Use for to display and sum the values. for (int x : nums) { System.out.println("Value is: " + x); sum += x; if (x == 5){ break; // stop the loop when 5 is obtained } } System.out.println("Summation of first 5 elements: " + sum); }}
47
continue statement
• จะหยดัทำ��คำ��สั่��งในี้รือบนี้��นี้ แลั�วกำลั�บไปเรื��มต้�นี้ทำ��ง�นี้รือบใหม�
• public class MainClass {
public static void main(String[] args) { for (int i = 0; i < 10; i++) { if (i == 5) { continue; } System.out.println(i); } }
}
48
• public class MainClass {
public static void main(String[] arg) { int limit = 10; int sum = 0; for (int i = 1; i <= limit; i++) { if (i % 3 == 0) { continue; } sum += i; } System.out.println(sum); }
}
49
• public class MainClass { public static void main(String[] args) { int limit = 20; int factorial = 1;
OuterLoop: for (int i = 1; i <= limit; i++) { factorial = 1; for (int j = 2; j <= i; j++) { if (i > 10 && i % 2 == 1) { continue OuterLoop; } factorial *= j; } System.out.println(i + "! is " + factorial); } }}
50
Java Input - Using Java Scanner• Import java.util.Scanner;• Scanner scan = new Scanner(System.in);• String input = scan.nextLine();• Int num = scan.nextInt();
51
ต้�วแปรือ�เรืย+เบ��องต้�นี้ (Array Basics)
• เป นี้ชื่��อของกำลั�มข�อม�ลัทำ��ม�ปรืะเภทำเดั�ยวกำ�นี้• ข�อม�ลัแต้�ลัะต้�วจะเรื�ยกำว�� สั่ม�ชื่�กำอ�เรืย+ (array
element)• สั่ม�ชื่�กำต้�วแรืกำจะม�ดั�ชื่นี้�(index) เป นี้ 0
52
ต้�วอย��ง array• public class MainClass {
public static void main(String[] arg) { int[] intArray = new int[10];
for (int i = 0; i < 10; i++) { intArray[i] = 100; }
for (int i = 0; i < 10; i++) { System.out.println(intArray[i]); }
}
}
53
กำ�รืกำ��หนี้ดัคำ�� array โดัย index• public class MainClass {
public static void main(String args[]) { int month_days[]; month_days = new int[12]; month_days[0] = 31; month_days[1] = 28; month_days[2] = 31; month_days[3] = 30; month_days[4] = 31; month_days[5] = 30; month_days[6] = 31; month_days[7] = 31; month_days[8] = 30; month_days[9] = 31; month_days[10] = 30; month_days[11] = 31; System.out.println("April has " + month_days[3] + " days."); }}
54
กำ�รืกำ��หนี้ดั array แบบอ��นี้ๆ• int al[] = new int[3];int[] a2 = new int[3];
• char twod1[][] = new char[3][4]; เท่�ากั�บ char[][] twod2 = new char[3][4];• int[] nums, nums2, nums3; // create three arra
ys
55
Anonymous arrays
• new type[] {comma-delimited-list}• public class MainClass {
public static void main (String args[]) { int array1[] = {1, 2, 3, 4, 5};
for(int i: array1){ System.out.print (i+” “); } }}
• Output : 1 2 3 4 5
56
Length of array• public class MainClass {
public static void main(String[] arg) { int[] intArray = new int[10];
for (int i = 0; i < intArray.length; i++) { intArray[i] = 100; }
for (int i = 0; i < intArray.length; i++) { System.out.print(intArray[i]+” “); }
}
}• 100 100 100 100 100 100 100 100 100 100
57
• public class MainClass {
public static void main(String[] arg) { double[] data = new double[50]; // An array of 50 values of type double for (int i = 0; i < data.length; i++) { // i from 0 to data.length-1 data[i] = 1.0; } for (int i = 0; i < data.length; i++) { // i from 0 to data.length-1 System.out.println(data[i]); } }}
58
Array of character
• public class MainClass{
public static void main(String[] arg){ char[] message = new char[5]; java.util.Arrays.fill(message, 'A'); for(char ch: message){ System.out.print (ch+” “); } }}
• A A A A A
59
iterate over an array • for (componentType variable: arrayName)• import java.util.Arrays;
public class MainClass {
public static void main(String[] arg) { double[] data = new double[5]; // An array of 50 values of type double Arrays.fill(data, 1.0); // Fill all elements of data with 1.0 for (double d: data) { System.out.println(d); } }}
• 1.0 1.0 1.0 1.0 1.0
60
Change size • public class MainClass {
public static void main(String[] args) { int[] numbers = { 1, 2, 3 };
int[] temp = new int[4]; int length = numbers.length; for (int j = 0; j < length; j++) { temp[j] = numbers[j]; } numbers = temp;
}
}