Post on 19-Jan-2018
description
1
for – while – switch
ผศ.ดร.อนันต์ ผลเพิม่Anan Phonphoem
http://www.cpe.ku.ac.th/~anananan@cpe.ku.ac.th
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 statementsend
Variable > n True
False
Increment variable by s
Set loop variable = m
Statements
4
for loops (Example)
for a = 1:2:10 total = total + aend
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;endsolution = solution - 10
>> cmd1 10 8 6 4 2 0
solution = -15
Resultscmd1.m
7
break example
% showing ‘break’ commandfor num = 10:-2:0 disp(num); temp = 2*num - 10; if (temp <= 0) break end solution = temp + 5;endsolution = solution - 10
>> cmd2 10 8 6 4
solution = -3
Resultscmd2.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 = [100 0 10 -10];for k = 1:length(a) solution = 1000/a(k)end
>> cmd3solution = 10Warning: Divide by zero.> In cmd3 at 3solution = Infsolution = 100solution = -100
Resultscmd3.m
10
continue example
% showing ‘continue’ commanda = [100 0 10 -10];for k = 1:length(a) if (a(k)== 0) continue end solution = 1000/a(k)end
>> cmd4solution = 10
solution = 100
solution = -100
Resultscmd4.m
11
while loop
Looping process is terminated based on the specified condition
12
condition False
TrueStatements
while loops
while condition statementsend
Set loop variable = m
Increment variableWithout 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 1while k > 0
Results
cmd5.m
14
while example (II)
k = 5;while k > 0 disp(k);end
>> cmd6 5 5 5 5 …
Results
cmd6.m
To break the programPress “Ctrl-C”
15
while example (III)
k = 5;while k > 0 disp(k); k = k-1;end
>> cmd7 5 4 3 2 1
Resultscmd7.m
16
while and for loop
% showing ‘break’ commandfor num = 10:-2:0 disp(num); temp = 2*num - 10; if (temp <= 0) break end solution = temp + 5;endsolution = solution - 10
cmd2.m Rewrite the programBy using “while”
17
while and for loop
% using whilenum = 10;temp = 2*num - 10; while temp > 0 disp(num); solution = temp+5; temp = 2*num -10; num = num-2;endsolution = solution - 10
cmd8.m
18
Nested Logic
condition1 FalseTrue
Statement1condition2
FalseTrue
Statement3Statement2
if logical exp1 statement g1elseif logical exp2 statement g2else statement g3end
19
if-else and switch comparison
switch input expression case value1 statement g1 case value2 statement g2 otherwise statement g3end
if logical exp1 statement g1elseif logical exp2 statement g2else statement g3end
20
Nested Logic – (Example)
a == 20 FalseTrue
c = a * 2 c == 30
FalseTrue
c = 0c = a + 2
if a == 20 c = a * 2elseif a == 30 c = a + 2else 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 nend
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)>> cmd9Type like, hate, or ok: likeI really like it>> cmd9Type like, hate, or ok: hateI do not like it>> cmd9Type like, hate, or ok: abcYour enter is wrong >> cmd9Type like, hate, or ok: LikeYour 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 switchend %end while
switch example (II) cmd10.m
26
switch example (II)
>> cmd10Type like, hate, ok, or quit: likeI really like itType like, hate, ok, or quit: HateI do not like itType like, hate, ok, or quit: abcYour enter is wrongType like, hate, ok, or quit: quit>>