第六课:使用数码管的简化方法—控制结构
在数码管示例小程序中需要一次对多个引脚进行定义、清零等操作,如果每次都逐行重复控制所有端口显得太过繁杂,于是类似于python的for和while:
for i in range(0,5):
function(i)
#逐次对变量i = 0,1,2,3,4进行fun(i)操作
while count < 5:
print(count, "is less than 5")
count += 1
else:
print(count, "is not less than 5")
#对变量i达到大于等于5的条件后停止操作
while True:
function(i)
#类似于loop函数无限循环
我们的Cpp语句中for, while , do while格式belike:
int i, sum = 0;
for(i=1; i<=100; i++){
sum = sum + i;
}
//i++就是i = i + 1;
int pinNumber = 3;
while(pinNumber <=9){
pinMode(pinNumber,OUTPUT);
pinNumber = pinNumber + 1;
}
//while是先判断再执行
int i=1, sum=0;
do{
sum+=i;
i++;
}while(i<=100);
//do while长得有点奇怪,是先执行一遍内容再进行while判断-执行循环,实际上是在while前又加了一遍执行内容。
同理对于多条件判断分支操作的情况,python里有if--elif*n--else结构; 在python3.10版本后也增加了case语句以避免过长的elif混淆。
if score >= 90:
print("优秀")
elif score >= 75:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
#判断是否满足if情况1,elif情况2,...elif情况N,直至都不满足则执行else
match expression:
case pattern1:
# 处理pattern1的逻辑
case pattern2 if condition:
# 处理pattern2并且满足condition的逻辑
case _:
if ... else if 与 switch ... case 在arduino中的应用
if( a == 0 ) {
digitalWrite(LEDpin1, HIGH);
}else if( a == 1 ) {
digitalWrite(LEDpin2, HIGH);
}else {
digitalWrite(LEDpin1, LOW);
digitalWrite(LEDpin2, LOW);
}
//if-else是两种判定情况,也可以if-else if -else if ...
switch (inByte) {
case 'a':
//当inByte = 'a'时执行case 'a'
digitalWrite(2, HIGH);
break;
case 'b':
digitalWrite(3, HIGH);
break;
case 'c':
digitalWrite(4, HIGH);
break;
default:
// 熄灭所有LED:
for (int thisPin = 2; thisPin < 5; thisPin++) {
digitalWrite(thisPin, LOW);
}
break;
//switch函数名,inByte变量名,case XX 用于判断,default用于不符合任何case的情况,break用于立即停止跳出判断句。
还有三个经典小短句break,continue和return,它们的作用分别为:
1.break用于绕过正常循环条件并中止do,for,或while循环。它也可用于中止switch语句。
2.return终止一个函数,并向调用此函数的函数返回一个值。注意返回值的定义类型是由函数名称的前缀决定的,所以如果有return内容,前面一定不能写void空指针否则会报错。下面就用三种方式写一个加数字1的函数
int Plus_one(int Input_Num){
int Output_Num;
Output_Num = Input_Num +1;
return Output_Num;
}
//这里创建了一个局部变量,实际可以不用
int Plus_OOne(int Input_Num){
Input_Num += 1 ;
return Input_Num;
}
//我们可以只用输入完成这件事
int Plus_One(int Input_Num){
Input_Num++;
return Input_Num;
}
//也可以进一步简化,但不能把中间那行直接return Input_Num++,否则逻辑会变为:
int Plus_One(int Input_Num){
int old = Input_Num;
Input_Num = Input_Num + 1;
return old;
}
//这样函数就没有成功执行+1的指令,返回值是错误的
3.continue语句的作用是跳过当前循环体中剩余的语句而强制进入下一次循环。continue语句用于 while、for 循环中,常与 if 条件语句一起使用,以判断条件是否成立。
💬 评论 (0)