一. 简介
前面几篇文章学习了 CMakeLists.txt语法中的一种循环写法,文章如下:
CMakeLists.txt语法规则:foreach 循环基本用法-CSDN博客
CMakeLists.txt语法规则:foreach循环的关键字-CSDN博客
本文学习 while循环写法。
二. CMakeLists.txt语法规则:while 循环
1. while 循环基本用法
while 循环用法如下:
while(condition)command1(args ...)command1(args ...)...
endwhile(condition)
endwhile 括号中的 condition 可写可不写,如果写了,就必须和 while 中的 condition 一致。
cmake 中 while 循环的含义与 C 语言中 while 循环的含义相同,但条件 condition 为真时,执行循环体中 的命令,而条件 condition 的语法形式与 if 条件判断中的语法形式相同。
# while 循环测试
set(loop_var 4)
while(loop_var GREATER 0)message("${loop_var}")math(EXPR loop_var "${loop_var} - 1")
endwhile()
上例中,while 循环的条件是(loop_var GREATER 0),等价于(loop_var > 0),当 loop_var 变量的有效数值大于 0 时,执行 while 循环体;在 while 循环体中使用到了 cmake 中的数学运算命令 math(),关于数学运 算下小节会向大家介绍。
在 while 循环体中,打印 loop_var ,之后将 loop_var 减一。
输出结果如下:
三. break、continue
cmake 中,也可以在循环体中使用类似于 C 语言中的 break 和 continue 语句
1. continue
continue()命令用于结束本次循环,执行下一次循环,测试如下:
# while...continue 测试
# 打印所有偶数
set(loop_var 10)while(loop_var GREATER 0) #loop_var>0 时 执行循环体math(EXPR var "${loop_var} % 2") #求余if(var EQUAL 0) #如果 var=0,表示它是偶数message("${loop_var}") #打印这个偶数math(EXPR loop_var "${loop_var} - 1")#loop_var--continue() # 执行下一次循环endif()math(EXPR loop_var "${loop_var} - 1")#loop_var--
endwhile()
这段 cmake 代码是求 0 到 10 之间的偶数(左闭右开),并将偶数打印出来,使用到了 continue() 命令。
打印结果如下:
2. break
break() 命令用于跳出循环,和在 C 语言中的作用是一样的,测试如下:
# while...break 测试
set(loop_var 10)while(loop_var GREATER 0) #loop_var>0 时 执行循环体message("${loop_var}")if(loop_var LESS 6) #当 loop_var 小于 6 时message("break")break() #跳出循环endif()math(EXPR loop_var "${loop_var} - 1")#loop_var--
endwhile()
打印信息如下:
整个代码笔者就不再解释了,注释已经写得很清楚了!
关于 break() 和 continue() 命令的使用就介绍到这里了。