switch 函数与while 函数差异
时间: 2023-04-04 08:03:25 浏览: 79
switch 函数和 while 函数是两种不同的函数,它们的作用和用法也不同。switch 函数是一种多分支选择结构,根据不同的条件执行不同的代码块。而 while 函数是一种循环结构,根据条件重复执行一段代码块。它们的主要差异在于,switch 函数只能根据不同的条件执行不同的代码块,而 while 函数可以根据条件重复执行同一段代码块。
相关问题
while函数中使用switch
在 C++ 中,`while` 循环语句可以与 `switch` 语句结合使用。下面是一个示例代码:
```
#include <iostream>
using namespace std;
int main() {
int i = 1;
while (i <= 5) {
switch (i) {
case 1:
cout << "One" << endl;
break;
case 2:
cout << "Two" << endl;
break;
case 3:
cout << "Three" << endl;
break;
case 4:
cout << "Four" << endl;
break;
case 5:
cout << "Five" << endl;
break;
default:
cout << "Invalid number" << endl;
break;
}
i++;
}
return 0;
}
```
在上面的示例中,`while` 循环语句用于循环 5 次,每次循环会执行一个 `switch` 语句,根据 `i` 的值输出不同的结果。`switch` 语句中的 `case` 标签用于匹配 `i` 的值,如果 `i` 的值与某个 `case` 标签匹配,则会执行该标签对应的语句块,否则会执行 `default` 标签对应的语句块。
keil switch函数
在KEIL 5中,switch语句用于根据不同的情况执行相应的代码块。每个case后面都需要使用break关键字来结束该分支。然而,根据引用所提到的,有时候break语句可能会被编译器优化掉。这可能导致某些break语句不被执行,从而出现逻辑错误。
为了避免这种情况,可以考虑使用if...else if...else if语句来替代switch语句。根据引用的描述,通过将每种情况分开编写,可以确保每个情况的代码都会得到执行,从而避免了编译器优化导致的问题。
在给出的代码中,可以看到switch语句的每个case后面都有一个break语句,确保每个情况都会结束。然而,可以将switch语句改写为if...else if...else if语句,以确保每个情况的代码都会被执行。以下是一个改写的示例代码:
```c
void main(){
while (1) {
int i;
// TODO
for(i=0;i<8;i++) {
DIGI_ENA_PORT = digi_ena[i];
// DIGI_OUT_PORT = digitube[i];
if (i == 0) {
DIGI_OUT_PORT = digitube