1 for – while – switch ผศ. ดร. อนันต์ ผลเพิ่ม Anan Phonphoem
2 Loops Repeating a calculation for a number of times Each repetition of the loop is a pass Two types of loops (In MATLAB) for loop while loop
3 for loops for loop var = m:s:n statements end Variable > n True False Increment variable by s Set loop variable = m Statements
4 for loops (Example) for a = 1:2:10 total = total + a end a > 10 True False a = a + 2 a = 1 total = total +a
5 break command To abnormally jump out of the loop before its end
6 Find the answer of the program for num = 10:-2:0 disp(num); temp = 2*num - 10; solution = temp + 5; end solution = solution - 10 >> cmd solution = -15 Results cmd1.m
7 break example % showing ‘break’ command for num = 10:-2:0 disp(num); temp = 2*num - 10; if (temp <= 0) break end solution = temp + 5; end solution = solution - 10 >> cmd solution = -3 Results cmd2.m
8 continue command To skip for some cases and continue execute the rest of the loop For example, skip the error that might happen
9 continue example a = [ ]; for k = 1:length(a) solution = 1000/a(k) end >> cmd3 solution = 10 Warning: Divide by zero. > In cmd3 at 3 solution = Inf solution = 100 solution = -100 Results cmd3.m
10 continue example % showing ‘continue’ command a = [ ]; for k = 1:length(a) if (a(k)== 0) continue end solution = 1000/a(k) end >> cmd4 solution = 10 solution = 100 solution = -100 Results cmd4.m
11 while loop Looping process is terminated based on the specified condition
12 condition False True Statements while loops while condition statements end Set loop variable = m Increment variable Without the, no way to get out of the loop. It ’ s called “ infinite loop ”
13 while example (I) while k > 0 disp(k); end >> cmd5 ??? Undefined function or variable "k". Error in ==> cmd5 at 1 while k > 0 Results cmd5.m
14 while example (II) k = 5; while k > 0 disp(k); end >> cmd6 5 … Results cmd6.m To break the program Press “ Ctrl-C ”
15 while example (III) k = 5; while k > 0 disp(k); k = k-1; end >> cmd Results cmd7.m
16 while and for loop % showing ‘break’ command for num = 10:-2:0 disp(num); temp = 2*num - 10; if (temp <= 0) break end solution = temp + 5; end solution = solution - 10 cmd2.m Rewrite the program By using “ while ”
17 while and for loop % using while num = 10; temp = 2*num - 10; while temp > 0 disp(num); solution = temp+5; temp = 2*num -10; num = num-2; end solution = solution - 10 cmd8.m
18 Nested Logic condition1 False True Statement1 condition2 FalseTrue Statement3Statement2 if logical exp1 statement g1 elseif logical exp2 statement g2 else statement g3 end
19 if-else and switch comparison switch input expression case value1 statement g1 case value2 statement g2 otherwise statement g3 end if logical exp1 statement g1 elseif logical exp2 statement g2 else statement g3 end
20 Nested Logic – (Example) a == 20 False True c = a * 2 c == 30 FalseTrue c = 0c = a + 2 if a == 20 c = a * 2 elseif a == 30 c = a + 2 else c = 0 end switch a case 20 c = a * 2 case 30 c = a + 2 otherwise c = 0 end
21 switch switch input expression case value1 statement group 1 case value2 statement group 2 case value1 statement group 3... otherwise statement group n end
22 switch example (I) response = input(‘Type like, hate, or ok: ’,’s’); switch response case ‘like’ disp(‘I really like it’); case ‘hate’ disp(‘I do not like it’); case ‘ok’ disp(‘It is ok’); otherwise disp(‘Your enter is wrong’); end cmd9.m
23 switch example (I) >> cmd9 Type like, hate, or ok: like I really like it >> cmd9 Type like, hate, or ok: hate I do not like it >> cmd9 Type like, hate, or ok: abc Your enter is wrong >> cmd9 Type like, hate, or ok: Like Your enter is wrong
24 Can you make it better ?
25 while true response = input(‘Type like,hate,ok, or quit:’,’s’); response = lower(response); switch response case ‘like’ disp(‘I really like it’); case ‘hate’ disp(‘I do not like it’); case ‘ok’ disp(‘It is ok’); case ‘quit’ break otherwise disp(‘Your enter is wrong’); end %end switch end %end while switch example (II) cmd10.m
26 switch example (II) >> cmd10 Type like, hate, ok, or quit: like I really like it Type like, hate, ok, or quit: Hate I do not like it Type like, hate, ok, or quit: abc Your enter is wrong Type like, hate, ok, or quit: quit >>