Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Chapter 4 คำสัง่ ควบคุม (control statement) •If statement •Switch statement •While loop and do-while loop •For loop and for-each loop •Break and continue 1 If statement • มี syntax ดังนี ้ if (booleanExpression) { statement (s) } • หรื อ if (booleanExpression) { statement (s) } else { statement (s) } 2 public class MainClass { public class MainClass { public static void main(Str ing[] args) { int x = 9; if (x > 4) { // statements } } } public static void main(String[] args) { int a = 3; if (a > 3) { // statements } else { // statements } } } 3 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[] arg s) { int a = 3, b = 1; if (a > 0 || b < 5) if (a > 2) System.out.println("a > 2"); else System.out.println("a < 2"); } } } 4 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 Multi selection if (booleanExpression1) { // statements } else if (booleanExpression2) { // statements } ... else { // statements } 6 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"); } } } 7 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"); } 8 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); 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 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); } 11 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."); } } } 12 • 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 13 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 14 • 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 0 i is 1 i is 2 Free flowing switch example! */ 15 • 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 16 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++; } } } 17 • 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 18 • public class MainClass { public static void main(String[] args) { double r = 0; while(r < 0.99d) { r = Math.random(); System.out.println(r); } } } 19 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 20 • public class MainClass { public static void main(String[] args) { int j = 4; do { System.out.println(j); j++; } while (j < 3); } } • Output : 4 21 • 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 22 for statement • for ( init ; booleanExpression ; update ) { statement (s) } • เริ่ มกำหนดค่ำ init ก่อนกำรทำคำสัง่ รอบแรก. • booleanExpressionจะถูกประเมินควำมจริ ง ถ้ ำเป็ นจริ งจะทำ statement(s) • คำสัง่ update จะถูกทำหลังจำกมีกำรทำคำสัง่ จนสิ ้นสุด block. • ค่ำของ init, expression, และ update สำมำรถละได้ 23 คำสัง่ ภำยใน block จะหยุดกระทำเมื่อเกิดเงื่อนข คื • booleanExpression ถูกประเมินมีคำ่ เป็ นเท็จ • พบคำสัง่ break หรื อ continue . • เกิด runtime error 24 public class MainClas s{ public static void m ain(String[] args) { for (int i = 0; i < 5; i ++) { System.out.print ln(i + " "); } } } public class MainClass { public static void mai n(String[] args) { int j = 0; for (; j < 3; j++) { System.out.println(j ); } // j is visible here } } 25 public class MainClass { public class MainClass { public static void main( String[] args) { int k = 0; for (; k < 3;) { System.out.println(k) ; k++; } } public static void main(S tring[] args) { int m = 0; for (;;) { System.out.println(m) ; m++; if (m > 4) { break; } } } } } 26 while (expression) { ... } for ( ; expression; ) { ... } 27 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(Str ing[] args) { int limit = 20; // Sum fro m 1 to this value int sum = 0; // Accumul ate sum in this variable for (int i = 1; i <= limit; i+ +) { sum = sum + i; } System.out.println("sum = " + sum); } } 28 public class Main { • public class MainClass { public static void main( String[] args) { for (;;) { System.out.println(" Hello"); break; } } } //Hello public static void main(St ring[] arg) { int limit = 10; int sum = 0; for (int i = 1, j = 0; i <= li mit; i++, j++) { sum += i * j; } System.out.println(sum) ; } } • 330 29 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 : 2 I : 1,j : 1, k : 2 I : 2,j : 1, k : 2 I : 3,j : 1, k : 2 I : 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= 0 i = 1 j= -1 i = 2 j= -2 i = 3 j= -3 i = 4 j= -4 */ 30 public class MainClass { • public class MainClass { public static void main(Stri ng[] arg) { int limit = 10; int sum = 0; public static void main(Str ing[] arg) { int limit = 10; int sum = 0; for (int i = 1; i <= limit;) { sum += i++; } System.out.println(sum); } } } int i = 1; for (; i <= limit;) { sum += i++; } System.out.println(sum); } • 55 31 public class MainClass { public static void main(Stri ng[] arg) { for (double radius = 1.0; r adius <= 2.0; radius += 0.2) { System.out.println("radiu s = " + radius + "area = " + M ath.PI * radius * radius); } } } • output radius = 1.0 area = 3.141592653589793 radius = 1.2 area = 4.523893421169302 radius = 1.4 area = 6.157521601035994 radius = 1.5999999999999999 area = 8.04247719318987 radius = 1.7999999999999998 area = 10.178760197630927 radius = 1.9999999999999998 area = 12.566370614359169 32 public class MainClass { public static void main(String[] ar gs) { 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 " + f actorial); } } } 33 public class MainClass { public static void main(String[] arg s) { 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 inn er"); continue inner; } } } } } } 34 for-each loop • for(type itr-var : iterableObj) statement-block 35 • 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(); 36 • 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); } } 37 • 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); 38 • public class MainClass { public static void main(String[] arg) { char[] vowels = { 'a', 'e', 'i', 'o', 'u'}; for(char ch: vowels){ System.out.println(ch); } } } 39 • 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); 40 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; } } } } 41 • 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; } } 42 • 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; } 43 • 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); 44 • 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; } } 45 • 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); } } 46 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); } } } 47 • 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); } } 48 • 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); } 49 • • • • Java Input - Using Java Scanner Import java.util.Scanner; Scanner scan = new Scanner(System.in); String input = scan.nextLine(); Int num = scan.nextInt(); 50 ตัวแปรอำเรย์เบื้องต้น (Array Basics) • เป็ นชื่อของกลุม่ ข้ อมูลที่มีประเภทเดียวกัน • ข้ อมูลแต่ละตัวจะเรี ยกว่ำ สมำชิกอำเรย์ (array element) • สมำชิกตัวแรกจะมีดชั นี(index) เป็ น 0 51 ตัวอย่ำง 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]); } } } 52 กำรกำหนดค่ำ 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."); } } 53 กำรกำหนด 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 arr ays 54 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 55 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 56 • 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]); } } } 57 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+” “); } } } • AAAAA 58 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 59 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; } } 60 Duplicate array • public class ArrayCopyDemo { public static void main(String[] args) { char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', ' n', 'a', 't', 'e', 'd' }; char[] copyTo = new char[7]; } } System.arraycopy(copyFrom, 2, copyTo, 0, 7); System.out.println(new String(copyTo)); 61