← 返回首页

第六课:使用数码管的简化方法—控制结构

第六课:使用数码管的简化方法—控制结构

在数码管示例小程序中需要一次对多个引脚进行定义、清零等操作,如果每次都逐行重复控制所有端口显得太过繁杂,于是类似于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 条件语句一起使用,以判断条件是否成立。

👁️ 68 阅读 📝 最后修改于 2026-10-30

💬 评论 (0)