Hi 大家好 吃完中飯打個嗝又是一條好漢
讓我們繼續P51-60的介紹
我們會學到
> 大於
>= 大於等於
< 小於
<= 小於等於
if() 如果
else if() 或是
else() 其他的
前四個太簡單 我不需要贅述
另外還有 != 兩邊不想等, == 兩邊相等
不過應該用不太到 有興趣的同學 可以在Processing裡輸入
println( 3 != 4 ); 下面黑色對話框應該會出現true,也就是合理的意思
你可以打任何上述符號(>,<,>=,.....)進println(),合理的就會是true,反之是false
如果你輸入println( 3+2 = 5 ); Processing是不會屌你的
你一定要輸入println( 3+2 == 5 );才會顯示true
而if這東西就值得讓人玩味了
if() 如果
else if() 或是
else() 其他的
如果用它們來造句的話就是
if Zooey Deschanel 能跟我同班就太棒了,
else if 新垣結衣跟我同班也很棒,
else 許純美,李敖之類的拜託別跟我同班
這樣你們大概懂意思吧?
讓我們以下面程式碼來更進一步解釋
size(200,200);
background(255);
smooth();
int x = 420; // 首先我們直截了當的說x = 420
if(x > 100){
if(x < 300){
noStroke();
fill(255,0,0);
ellipse(100,100,40,40);
}
else{
strokeWeight(5);
line(0,0,200,200);
}
}
//再來我們可以看到if裡面還有if這是為什麼呢
//因為processing裡你不能直接寫if(100 < x < 300) 它不會理你
//所以你才要在if(x>100)裡面再寫if(<300)
//因此上面這幾行的解釋就是如果100<x<300,則請幫我畫一個沒有外框線半徑為40的紅色圓
//要是x不介於100到300之間,那則畫一條線粗為5,由左上到右下的對角線
else{
rectMode(CENTER);
fill(0,255,0);
rect(100,100,30,30);
}
//這幾行則是說,如果上面的if通通不成立
//那就幫我畫一個以中心為基準點邊長為30的綠色正方形吧
//saveFrame("p056-1-##.jpg");
可是我們可以看到,畫面上只畫了一條對角線,
因為在第一段的if中,儘管100<x<300沒有成立,因為x=420
但我已經在之後加了else就畫一條對角線吧
所以這個if已經成立了,因此最後再加畫正方形的else就不會出現
同理可證以下程式碼
size(200,200);
background(255);
smooth();
int x = 100; //這次設兩個數值
int y = 200; //x = 100, y = 200
if(x > 500){
fill(255,0,0);
ellipse(100,100,40,40);
}
//如果x>500,請幫我畫一個半徑40的紅圓,但在這不成立,所以不會畫出
else if(y > 300){
stroke(0,0,255);
strokeWeight(5);
line(0,0,200,200);
}
//如果上述不成立,那y>300的話,畫一條對角線也可以,但在這也不成立,所以不會畫出
else{
noStroke();
rectMode(CENTER);
fill(0,255,0);
rect(100,100,30,30);
}
//剛好上述兩個if都不成立,因此除了if 之外的所有可能都直接幫我畫一個正方形
//邊長為30,中心在圖中心,顏色為綠色同時不要有外框線
//saveFrame("p056-2-##.jpg");
到這我們進度到P.60了,但是我沒有講P57-59的內容,
它基本上是在講true,false的東西,不過應該用不太到,
所以有興趣的可以自己翻一下即可,不難
Try it. :)
沒有留言:
張貼留言