/* Arduino 教學 CH02-04 布林值運算 與 判斷式 ARDUINO LESSON CH02-04 Boolean calculation & Judgment Youtube channel:https://www.youtube.com/user/m0923678421 Video:https://www.youtube.com/watch?v=HTnhF1OhnxI Blog:http://blog.xuite.net/m0923678421/development Article:http://blog.xuite.net/m0923678421/development/501529715 */ boolean led = false;//LED狀態 int number1 = 1; int number2 = 2, number3 = number2 - 1;//number2為目標,number3為檢查值,目標從2開始,因為我知道1不是質數,檢查值要比目標少1,如果跟目標相同數字沒有意義 int st1 = 30, st2 = 90, st3 = 100, st4 = 65, st5 = 88; boolean fisrtTime = true;//在LOOP中,只執行一次用 void setup() { pinMode(13, OUTPUT); Serial.begin(9600); } void loop() { //Q1.led反向 led = !led;//將true反向為false 或 false反向為true digitalWrite(13, led); delay(500); //Q2.1~12345中有多少數為7的倍數,並列出 /* //設定範圍 if (number1 <= 12345) { //如果除以7的餘數為零,代表可以被7整除 if (number1 % 7 == 0) { Serial.println((String)number1); } number1++;//number1 = number +1; or number1 +=1; } */ //Q3.1~100內的有多少質數,並列出 //質數是指可以被自己或1整除的數字 //number2 為目標 //number3 為檢查值 /* //設定範圍 if (number2 <= 100) { //如果檢查值,檢查到1,代表該目標為質數 if (number3 == 1) { Serial.println((String)number2);//找到目標後印出 } //是否可被檢查直整除,可果可以被整除,代表不是質數 if (number2 % number3 == 0) { number2++;//發現目標不是質數,換下一個數字 number3 = number2 - 1;//檢查值要比目標少1,如果跟目標相同數字沒有意義 } else { number3--; } } */ //Q4.成績分級 /* //因為寫在loop()內,會不斷被執行,所以執行完一次後要被了斷 if (fisrtTime) { int results = st1;//因為還沒有說到陣列,所以要將學生成績一一放進來 Serial.print("st1:"); if (results == 100) { Serial.print("A++");//100分的學生 } else if (results >= 80) { Serial.print("A+");//100<成績<=80的學生 } else if (results >= 60) { Serial.print("A");//80<成績<=60的學生 } else if (results >= 40) { Serial.print("B");//60<成績<=40的學生 } else { Serial.print("C");//成績<40的學生 } Serial.println(""); //因為還沒有說到子程式,所以要重複多打幾次 results = st2; Serial.print("st2:"); if (results == 100) { Serial.print("A++"); } else if (results >= 80) { Serial.print("A+"); } else if (results >= 60) { Serial.print("A"); } else if (results >= 40) { Serial.print("B"); } else { Serial.print("C"); } Serial.println(""); results = st3; Serial.print("st3:"); if (results == 100) { Serial.print("A++"); } else if (results >= 80) { Serial.print("A+"); } else if (results >= 60) { Serial.print("A"); } else if (results >= 40) { Serial.print("B"); } else { Serial.print("C"); } Serial.println(""); results = st4; Serial.print("st4:"); if (results == 100) { Serial.print("A++"); } else if (results >= 80) { Serial.print("A+"); } else if (results >= 60) { Serial.print("A"); } else if (results >= 40) { Serial.print("B"); } else { Serial.print("C"); } Serial.println(""); results = st5; Serial.print("st5:"); if (results == 100) { Serial.print("A++"); } else if (results >= 80) { Serial.print("A+"); } else if (results >= 60) { Serial.print("A"); } else if (results >= 40) { Serial.print("B"); } else { Serial.print("C"); } Serial.println(""); fisrtTime = false;//設為false,避免重覆執行 } */ //Q5 測試&,&&,|,|| /* //因為寫在loop()內,會不斷被執行,所以執行完一次後要被了斷 if (fisrtTime) { if (false & printFn()) { Serial.println("Pass1"); } Serial.println("End1"); Serial.println(""); if (false && printFn()) { Serial.println("Pass2"); } Serial.println("End2"); Serial.println(""); if (true | printFn()) { Serial.println("Pass3"); } Serial.println("End3"); Serial.println(""); if (true || printFn()) { Serial.println("Pass4"); } Serial.println("End4"); Serial.println(""); fisrtTime = false;//設為false,避免重覆執行 } */ } bool printFn() { Serial.println("hello"); return true; }