【车载测试之CAPL编程系列】:【13】循环结构(1)while循环

车载测试CAPL编程:循环结构(1):while循环

目录

while循环

语法结构

  • 关键字 while + 小括号 () 中的条件表达式 + 花括号 {} 中的循环主体
    while (条件表达式) {
        // 循环主体语句(0到多条)
    }
    

执行流程

  1. 判断条件:先判断小括号内的条件表达式是否成立(非0为成立,0为不成立)。
  2. 执行主体:若条件成立,执行花括号内的循环主体;执行完毕后,返回步骤1再次判断条件。
  3. 退出循环:若条件不成立,直接退出循环,执行后续语句。
    • 注意:若首次判断条件不成立,循环主体一次都不执行。

条件表达式特点

  • 可以是关系/逻辑表达式(如 i <= 3a > 5 && b < 10),也可以是变量或字面量(如 a10,非0即成立)。
    • 示例:while(a) 中,若 a=10(非0)则条件成立;若 a=0 则不成立。

避免死循环

  • 循环主体中需包含修改条件表达式的语句(如变量自增 i++),否则可能导致条件始终成立,形成死循环。

示例:输出1-3

int i = 1;
while(i <= 3) {
    write("i的值为%d", i); // 输出i的值
    i++; // 修改条件变量,避免死循环
}
write("程序结束");
  • 执行结果:输出 i的值为1i的值为2i的值为3,然后输出 程序结束
  • 条件判断次数:4次(i=1、2、3时成立,i=4时不成立)。

do-while循环

语法结构

  • 关键字 do + 花括号 {} 中的循环主体 + while(条件表达式);(注意末尾分号)
    do {
        // 循环主体语句
    } while (条件表达式);
    

执行流程

  1. 执行主体:先执行一次循环主体。
  2. 判断条件:执行完毕后,判断条件表达式是否成立。
  3. 循环或退出:若条件成立,返回步骤1再次执行主体;否则退出循环。
    • 核心区别:与 while 循环相比,do-while 至少执行一次循环主体。

示例:输出0-4

int j = 0;
do {
    write("j的值为%d", j); // 输出j的值
    j++; // 修改条件变量
} while(j < 5);
write("程序结束");
  • 执行结果:输出 j的值为0j的值为1j的值为2j的值为3j的值为4,然后输出 程序结束

while与do-while对比

  • 初始条件不成立时
    • while 循环:主体一次不执行。
    • do-while 循环:主体执行一次后退出。
    • 示例:若 i=100while(i <= 3) 不执行主体;do-while(j < 5)j=100 时,先输出 j的值为100,再退出。

循环控制关键字:break与continue

break:强制退出循环

  • 作用:在循环主体中遇到 break 时,立即终止整个循环,跳出循环结构,执行后续语句。
  • 示例:打印1-10,遇7中断
    int i = 0;
    while(i < 10) {
        i++;
        if(i == 7) {
            break; // 遇7时强制退出循环
        }
        write("i的值为%d", i);
    }
    write("程序结束");
    
    • 执行结果:输出 123456,然后输出 程序结束(跳过7-10)。

continue:跳过当前循环剩余部分

  • 作用:在循环主体中遇到 continue 时,跳过当前循环中 continue 后的语句,直接进入下一次条件判断。
  • 示例:打印1-10,跳过7
    int i = 0;
    while(i < 10) {
        i++;
        if(i == 7) {
            continue; // 遇7时跳过后续输出
        }
        write("i的值为%d", i);
    }
    write("程序结束");
    
    • 执行结果:输出 1234568910,跳过7。

综合示例

示例1:计算1-100的连续自然数之和

int i = 1;
int sum = 0;
while(i <= 100) {
    sum += i; // 累加i到sum
    i++;
}
write("1-100的和为%d", sum); // 结果:5050

示例2:计算1-100的连续偶数之和

int i = 2; // 从偶数2开始
int sum = 0;
while(i <= 100) {
    sum += i;
    i += 2; // 每次递增2(保证i为偶数)
}
write("1-100的偶数和为%d", sum); // 结果:2550

示例3:判断一个数是否为素数(质数)

  • 素数定义:只能被1和自身整除的大于1的整数。
  • 思路:穷举2到n-1之间的数,若存在能整除n的数,则n不是素数;否则是素数。
int n = 13; // 待判断的数
int i = 2;
int isPrime = 1; // 标记是否为素数,1-是,0-否

while(i < n) {
    if(n % i == 0) { // 若n能被i整除
        write("%d不是素数,能被%d整除", n, i);
        isPrime = 0;
        break; // 找到除数,无需继续判断
    }
    i++;
}

if(isPrime && i == n) { // 循环正常结束(i增长到n),且未找到除数
    write("%d是素数", n);
}
  • 执行结果:n=13时输出 13是素数;n=121时输出 121不是素数,能被11整除

AI 总结

本文主要讲解了CAPL编程中的两种循环结构(whiledo-while)及循环控制关键字(breakcontinue)。while 循环先判断条件后执行主体,可能一次不执行;do-while 先执行主体后判断条件,至少执行一次。break 用于强制退出循环,continue 用于跳过当前循环剩余部分。通过示例演示了循环在数值累加、素数判断等场景的应用,强调了避免死循环的关键是修改条件变量。这些内容是CAPL自动化测试中实现重复逻辑的基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值