1 / 37

제 7 장 WMLScript 제어구조 (2) 1. for 문 2. break 문과 continue 문 3. 자료형 4. 게임 WMLScript 작성하기

제 7 장 WMLScript 제어구조 (2) 1. for 문 2. break 문과 continue 문 3. 자료형 4. 게임 WMLScript 작성하기. 1. for 문 for 문 형식. 예. [ 예제 7-1] for 문을 이용하여 1 에서 10 까지의 합과 10! 값을 구하기 ▶ ch7-1.wml 1 <?xml version = "1.0" ?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"

december
Download Presentation

제 7 장 WMLScript 제어구조 (2) 1. for 문 2. break 문과 continue 문 3. 자료형 4. 게임 WMLScript 작성하기

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제 7 장 WMLScript 제어구조 (2) 1. for 문 2. break 문과 continue 문 3. 자료형 4. 게임 WMLScript 작성하기 제 7 장 WMLScript 제어구조 (2)

  2. 1. for 문 • for 문 형식 • 예 제 7 장 WMLScript 제어구조 (2)

  3. [예제 7-1] for 문을 이용하여 1에서 10까지의 합과 10! 값을 구하기 • ▶ ch7-1.wml • 1<?xml version = "1.0" ?> • 2<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 • 5<wml> • 6<card id = "index"> • 7 • 8<do type="accept" label="결과"> • 9<go href="ch7-1.wmls#main()"/> • 10</do> • 11 • 12<p align="center"> • 131-10까지의 합과 10 펙토리얼 구하기 • 14</p> • 15 • 16</card> 제 7 장 WMLScript 제어구조 (2)

  4. 17 18<card id="result"> 19<p> 201~10까지의 합 : $total <br/> 2110 펙토리얼: $n_factorial 22</p> 23</card> 24 25</wml> ▶ ch7-1.wmls 1extern function main() 2{ 3var number; 4 5//1-10까지의 합 구하기 6var sum=0; 7for (number=1; number <= 10; number++) 8sum = sum + number; 제 7 장 WMLScript 제어구조 (2)

  5. 9 10//10! 구하기 11var factorial=1; 12for (number=2; number <= 10; number++) 13factorial = factorial * number; 14 15WMLBrowser.setVar("total", sum); 16WMLBrowser.setVar("n_factorial", factorial); 17WMLBrowser.go("#result"); 18} 제 7 장 WMLScript 제어구조 (2)

  6. 예제 7-1의 실행 결과 제 7 장 WMLScript 제어구조 (2)

  7. [예제 7-2] for 문을 이용한 통장 잔액 구하기 • ▶ ch7-2.wml • 1 <?xml version = "1.0" ?> • 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 • 5 <wml> • 6 <card id = "index"> • 7 <do type="accept" label="보기"> • 8 <go href="ch7-2.wmls#main()"/> • 9 </do> • 10 • 11 <p> • 12 연 이자율이 0.05이고<br/> • 13 원금이 10,000원일 때<br/> • 14 5년 후에는 얼마일까? • 15 </p> • 16 </card> 제 7 장 WMLScript 제어구조 (2)

  8. 17 18 <card id = "result"> 19 <p> 20 연 이자율이 0.05이고<br/> 21 원금이 10,000원일 때<br/> 22 5년 후에는 $(amount)원이 됩니다. 23 </p> 24 </card> 25 </wml> ▶ ch7-2.wmls 1 extern function main() 2 { 3 var r = 0.05;// 연 이자율 4 var p = 10000;// 현재 통장의 원금 5 var n = 5;// 저축 연 수 6 var total;// n 년 후의 통장의 잔고 7 제 7 장 WMLScript 제어구조 (2)

  9. 8 var temp = 1; 9 10 // (1+r)의 n 제곱 구하기 11 for ( var year = 1; year <= n; year++) 12 { 13 temp = temp * (1+r); 14 } 15 16 total = p * temp; 17 18 WMLBrowser.setVar("amount", total); 19 WMLBrowser.go("#result"); 20 } 제 7 장 WMLScript 제어구조 (2)

  10. 예제 7-2의 실행 결과 제 7 장 WMLScript 제어구조 (2)

  11. [예제 7-3] for 문을 이용한 합격자 명단 구하기 • ▶ ch7-3.wml • 1 <?xml version = "1.0" ?> • 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 • 5 <wml> • 6 <card id = "index" title = "시험 결과" > • 7 <do type="accept" label="작성"> • 8 <go href="ch7-3.wmls#main()" /> • 9 </do> • 10 11 <p> • 12 합격자, 불합격자 명단 작성하기 • 13 </p> • 14 </card> • 15 제 7 장 WMLScript 제어구조 (2)

  12. 16 <card id="result"> 17 <do type="option" label="이전"> 18 <go href="index" /> 19 </do> 20 21 <p align="center"> 22 결과 <br/> 23 합격자 : $number_pass 명 <br/> 24 -------------<br/> 25 $pass_list 26 -------------<br/> 27 28 <a href="#failure"> 불합격자명단보기</a> 29 </p> 30 </card> 31 32 <card id="failure"> 33 34 <do type="accept" label="홈"> 35 <go href="index" /> 36 </do> 제 7 장 WMLScript 제어구조 (2)

  13. 37 38 <do type="option" label="이전"> 39 <go href="index" /> 40 </do> 41 42 <p align="center"> 43 44 불합격자 : $number_fail 명 <br/> 45 -------------<br/> 46 $fail_list 47 ------------- 48 </p> 49 </card> 50 </wml> 제 7 장 WMLScript 제어구조 (2)

  14. ▶ ch7-3.wmls 1 extern function main() 2 { 3 var pass = 0;// 합격자 수 4 var fail = 0; // 불합격자 수 5 var pass_list ;// 합격자 이름과 점수 목록 6 var fail_list ;// 불합격자 이름과 점수 목록 7 var s_name, grade; 8 9 for (var n=1; n <= 5; n++) 10 { 11 s_name = Dialogs.prompt("Student's name :", ""); 12 grade = Dialogs.prompt("Student's grade :", ""); 13 grade = Lang.parseInt(grade); 14 15 if (grade >= 60) 16 { 17 pass++; 18 pass_list += s_name + " : " + grade + "\n"; 19 } 제 7 장 WMLScript 제어구조 (2)

  15. 20 else 21 { 22 fail++; 23 fail_list += s_name + " : " + grade + "\n"; 24 } 25 } 26 27 WMLBrowser.setVar("number_pass", pass); 28 WMLBrowser.setVar("number_fail", fail); 29 WMLBrowser.setVar("pass_list", pass_list); 30 WMLBrowser.setVar("fail_list", fail_list); 31 WMLBrowser.go("#result"); 32 } 제 7 장 WMLScript 제어구조 (2)

  16. 예제 7-3의 실행 결과 제 7 장 WMLScript 제어구조 (2)

  17. 2. break 문과 continue 문 • break 문 • - 형식 제 7 장 WMLScript 제어구조 (2)

  18. [예제 7-4] break 문을 이용한 임의의 양의 정수의 1을 제외한 최소 • 약수 구하기 • ▶ ch7-4.wml • 1 <?xml version = "1.0" ?> • 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 5 <wml> • 6 <card id = "index" > • 7 <do type="accept" label="시작"> • 8 <go href="ch7-4.wmls#main()" /> • 9 </do> • 10 11 <p> • 12 양의 정수를 넣으세요 • 13 <input name="positive_integer"/> • 14 </p> • 15 </card> • 16 제 7 장 WMLScript 제어구조 (2)

  19. 17 <card id = "result" > 18 19 <p> 20 $positive_integer 의 (1 이 아닌) 최소 약수는 21 $divisor 입니다. 22 </p> 23 </card> 24 </wml> ▶ ch7-4.wmls 1 extern function main() 2 { 3 var number=WMLBrowser.getVar("positive_integer"); 4 var sum=0; 5 6 for (var n=2; n<= number; n++) 7 { 8 if ((number % n) == 0) 9 break; 10 } 제 7 장 WMLScript 제어구조 (2)

  20. 11 12 WMLBrowser.setVar("divisor", n); 13 WMLBrowser.go("#result"); 14 } • 예제 7-4의 실행 결과 제 7 장 WMLScript 제어구조 (2)

  21. continue 문 • - 형식 제 7 장 WMLScript 제어구조 (2)

  22. [예제 7-5] continue 문을 이용하여 양의 정수의 모든 약수를 구하기 • ▶ ch7-5.wml • 1 <?xml version = "1.0" ?> • 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 • 5 <wml> • 6 <card id = "index" > • 7 <do type="accept" label="시작"> • 8 <go href="ch7-5.wmls#main()" /> • 9 </do> • 10 • 11 <p> • 12 1-100 사이의 정수를 넣으세요. • 13 <input name="positive_integer" format ="N*N" /> • 14 </p> • 15 </card> • 16 제 7 장 WMLScript 제어구조 (2)

  23. 17 18 <card id = "result" > 19 20 <p> 21 $positive_integer 의 모든 약수는 22 $divisor 입니다. 23 </p> 24 </card> 25 </wml> ▶ ch7-5.wmls 1 extern function main() 2 { 3 var number=WMLBrowser.getVar("positive_integer"); 4 var msg_divisor;// nember의 약수들을 저장할 문자열 5 제 7 장 WMLScript 제어구조 (2)

  24. 6 if ((number < 1) && (number > 100)) 7 Dialogs.alert("Invalid!"); 8 9 for (var n=1; n< number; n++) 10 { 11 if ((number % n) == 0) 12 //n이 number의 약수이므로 msg_divisor에 n을 추가 13 msg_divisor += n + ", "; 14 else 15 continue; 16 17 // n이 number의 약수임을 표시 18 var msg = n + " is a divisor of " + number; 19 Dialogs.alert(msg); 20 } 21 22 msg_divisor += number; 23 WMLBrowser.setVar("divisor", msg_divisor); 24 WMLBrowser.go("#result"); 25 } 제 7 장 WMLScript 제어구조 (2)

  25. 예제 7-5의 실행 결과 제 7 장 WMLScript 제어구조 (2)

  26. 3. 자료형 • invalid 형 • - 그 값이 유효한 범위를 벗어나서 아무런 의미가 없는 값을 말한다. • typeof 연산자 • - 특정값의 자료형을 알기 위하여 사용 제 7 장 WMLScript 제어구조 (2)

  27. isvalid 연산자 • - 변수에 저장된 값이 invalid 형인지 아니면 유효한 값인지를 검사 • variable_name 변수에 저장된 값이 invalid 형이 아니면, true • invalid이면, false를 반환 • [예제 7-6] typeof, isvalid 연산자 사용 예 • ▶ ch7-6.wml • 1 <?xml version = "1.0" ?> • 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 제 7 장 WMLScript 제어구조 (2)

  28. 5 <wml> 6 <card id="index"> 7 <do type="accept" label="+,- 결과"> 8 <go href="ch7-6.wmls#main()" /> 9 </do> 10 11 <p> 12 첫번째 정수 13 <input name="number1" value="2147483647"/> 14 15 두번째 정수 16 <input name="number2" value="1"/> 17 </p> 18 </card> 19 20 <card id = "result"> 21 22 <p> 23 [뺄셈결과]<br/> 제 7 장 WMLScript 제어구조 (2)

  29. 24 $number1 - $number2 <br/> 25 = $(value1)입니다. <br/> 26 ------------------<br/> 27 [덧셈결과]<br/> 28 $number1 + $number2 <br/> 29 = $(value2)입니다.<br/> 30 </p> 31 </card> 32 </wml> ▶ ch7-6.wmls 1 extern function main() 2 { 3 var integer1 = Lang.parseInt(WMLBrowser.getVar("number1")); 4 var integer2 = Lang.parseInt(WMLBrowser.getVar("number2")); 5 6 var result1 = integer1 - integer2; 7 var result2 = integer1 + integer2; 제 7 장 WMLScript 제어구조 (2)

  30. 8 9 // 계산 결과가 정확한 정수형인지 확인 10 if ((typeof result1) == 0 ) 11 { 12 Dialogs.alert(integer1 + "-" + integer2 + "\n = " + result1); 13 } 14 else 15 Dialogs.alert(integer1 + "-" + integer2 + "\n is out of range!"); 16 17 // 계산 결과가 유효범위를 벗어난 invalid 형이 아닌지 확인 18 if (isvalid result2) 19 Dialogs.alert(integer1 + "+" + integer2 + "\n = " + result2); 20 else 21 Dialogs.alert(integer1 + "+" + integer2 + "\n is out of range!"); 22 23 24 WMLBrowser.setVar("value1", result1); 25 WMLBrowser.setVar("value2", result2); 26 WMLBrowser.go("#result"); 27 } 제 7 장 WMLScript 제어구조 (2)

  31. 예제 7-6의 실행 결과 제 7 장 WMLScript 제어구조 (2)

  32. 4. 게임 WMLScript 프로그램 작성 • Lang 객체의 random() 메서드 • - Lang 객체에는 임의의 정수값을 반환해 주는 random() 메서드가 있다. • - 형식: Lang.random(value) • - 사용 예, 174쪽 참조 • [예제 7-7] 컴퓨터와 가위바위보 게임을 하는 WML 문서와 • WMLScript 프로그램 작성하기 • ▶ ch7-7.wml • 1 <?xml version = "1.0" ?> • 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" • 3 "http://www.wapforum.org/DTD/wml12.dtd"> • 4 제 7 장 WMLScript 제어구조 (2)

  33. 5 <wml> 6 <card id = "index" title = "가위바위보 게임"> 7 8 <p align="center"> 9 무엇을 내겠습니까?<br/> 10 ------------------<br/> 11 12 <select name="you"> 13 <option value="0" onpick="ch7-7.wmls#main()"> 가위 </option> 14 <option value="1" onpick="ch7-7.wmls#main()"> 바위 </option> 15 <option value="2" onpick="ch7-7.wmls#main()"> 보</option> 16 </select> 17 18 </p> 19 </card> 20 21 <card id="result"> 22 <do type="accept" label="또하기"> 23 <go href="#index"/> 24 </do> 25 제 7 장 WMLScript 제어구조 (2)

  34. 26 <p align="center"> 27 @ 게임 결과 @<br/> 28 ------------------<br/> 29 <table columns="2"> 30 <tr> <td>컴퓨터</td> <td>$me </td> </tr> 31 <tr> <td>당신 </td> <td>$you </td> </tr> 32 <tr> <td>승자 </td> <td>$winner ^^</td> </tr> 33 </table> 34 </p> 35 </card> 36 37 </wml> ▶ ch7-7.wmls 1 extern function main() 2 { 3 var player1, player2, win, what; 4 var computer=Lang.random(2);//컴퓨터가 낸 것 5 var man = Lang.parseInt(WMLBrowser.getVar("you"));// 사용자가 낸 것 제 7 장 WMLScript 제어구조 (2)

  35. 6 7 // 컴퓨터와 사용자 중에서 승자를 win에 저장 8 if (computer == man ) 9 win="tie"; 10 else if ((computer == 0) && (man == 1)) 11 win="You"; 12 else if ((computer == 0) && (man == 2)) 13 win="computer"; 14 else if ((computer == 1) && (man == 2)) 15 win="You"; 16 else if ((computer == 1) && (man == 0)) 17 win="computer"; 18 else if ((computer == 2) && (man == 0)) 19 win="You"; 20 else if ((computer == 2) && (man == 1)) 21 win="computer"; 22 제 7 장 WMLScript 제어구조 (2)

  36. 23 // 컴퓨터가 낸 것을 WML 변수 me에 저장 24 if (computer ==0) 25 what = "Gawi"; 26 else if (computer ==1) 27 what = "Bawi"; 28 else 29 what = "Bo"; 30 WMLBrowser.setVar("me", what); 31 32 // 사용자가 낸 것을 WML 변수 you에 저장 33 if (man ==0) 34 what = "Gawi"; 35 else if (man ==1) 36 what = "Bawi"; 37 else 38 what = "Bo"; 39 WMLBrowser.setVar("you", what); 40 41 WMLBrowser.setVar("winner", win); 42 WMLBrowser.go("#result"); 43 } 제 7 장 WMLScript 제어구조 (2)

  37. 예제 7-7의 실행 결과 제 7 장 WMLScript 제어구조 (2)

More Related