“Goto”的版本间的差异
(Created page with "https://www.microduino.cn/wiki/index.php/Arduino_语法手册/zh 返回Arduino语法手册") |
|||
| 第1行: | 第1行: | ||
| + | *'''goto''' | ||
| + | 程序将会从程序中已有的标记点开始运行 | ||
| + | |||
| + | *'''语法''' | ||
| + | <pre style="color:green"> | ||
| + | |||
| + | label: | ||
| + | goto label; //从label处开始运行 | ||
| + | </pre> | ||
| + | |||
| + | *'''提示''' | ||
| + | |||
| + | 不要在C语言中使用goto编程,某些C编程作者认为goto语句永远是不必要的,但用得好,它可以简化某些特定的程序。许多程序员不同意使用goto的原因是, 通过毫无节制地使用goto语句,很容易创建一个程序,这种程序拥有不确定的运行流程,因而无法进行调试。 | ||
| + | |||
| + | 的确在有的实例中goto语句可以派上用场,并简化代码。例如在一定的条件用if语句来跳出高度嵌入的for循环。 | ||
| + | |||
| + | *'''例子''' | ||
| + | <pre style="color:green"> | ||
| + | |||
| + | for(byte r = 0; r < 255; r++){ | ||
| + | for(byte g = 255; g > -1; g--){ | ||
| + | for(byte b = 0; b < 255; b++){ | ||
| + | if (analogRead(0) > 250){ | ||
| + | goto bailout; | ||
| + | } | ||
| + | //更多的语句... | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | bailout: | ||
| + | </pre> | ||
| + | |||
[[https://www.microduino.cn/wiki/index.php/Arduino_%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C/zh 返回Arduino语法手册]] | [[https://www.microduino.cn/wiki/index.php/Arduino_%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C/zh 返回Arduino语法手册]] | ||
2016年3月28日 (一) 07:35的最新版本
- goto
程序将会从程序中已有的标记点开始运行
- 语法
label: goto label; //从label处开始运行
- 提示
不要在C语言中使用goto编程,某些C编程作者认为goto语句永远是不必要的,但用得好,它可以简化某些特定的程序。许多程序员不同意使用goto的原因是, 通过毫无节制地使用goto语句,很容易创建一个程序,这种程序拥有不确定的运行流程,因而无法进行调试。
的确在有的实例中goto语句可以派上用场,并简化代码。例如在一定的条件用if语句来跳出高度嵌入的for循环。
- 例子
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){
goto bailout;
}
//更多的语句...
}
}
}
bailout: