📜  C / C++中的Switch语句

📅  最后修改于: 2021-05-30 03:43:50             🧑  作者: Mango

Switch case语句代替了将变量与多个整数值进行比较的long if语句

  • switch语句是多路分支语句。它提供了一种简单的方法,可以根据表达式的值将执行分派到代码的不同部分。
  • Switch是一个控制语句,它允许一个值更改执行控制。

句法:

switch (n)
{
    case 1: // code to be executed if n = 1;
        break;
    case 2: // code to be executed if n = 2;
        break;
    default: // code to be executed if n doesn't match any cases
}

有关开关案例声明的要点:

1.开关中提供的表达式应得出一个常数值,否则将无效。
switch的有效表达式:

// Constant expressions allowed
switch(1+2+23)
switch(1*2+3%4)

// Variable expression are allowed provided
// they are assigned with fixed values
switch(a*b+c*d)
switch(a+b+c)

2.不允许重复的案例值。

3.默认语句是可选的。即使switch case语句没有默认语句,
它会毫无问题地运行。

4. break语句用于开关内部,以终止语句序列。到达break语句后,开关终止,控制流跳至switch语句后的下一行。

5. break语句是可选的。如果省略,将继续执行下一种情况。控制流将落到随后的情况中,直到达到中断为止。

6.允许嵌套switch语句,这意味着您可以在另一个switch中包含switch语句。但是,应避免使用嵌套的switch语句,因为它会使程序更复杂且可读性更差。
流程图:

在Java中切换

例子:

C
// Following is a simple C program
// to demonstrate syntax of switch.
#include 
int main()
{
   int x = 2;
   switch (x)
   {
       case 1: printf("Choice is 1");
               break;
       case 2: printf("Choice is 2");
                break;
       case 3: printf("Choice is 3");
               break;
       default: printf("Choice other than 1, 2 and 3");
                break; 
   }
   return 0;
}


C++
// Following is a simple C++ program
// to demonstrate syntax of switch.
include 
using namespace std;
 
int main() {
int x = 2;
    switch (x)
    {
        case 1:
            cout << "Choice is 1";
            break;
        case 2:
            cout << "Choice is 2";
            break;
        case 3:
            cout << "Choice is 3";
            break;
        default:
            cout << "Choice other than 1, 2 and 3";
            break; 
    }
return 0;
}


输出:

Choice is 2

时间复杂度: O(1)

辅助空间: O(1)
相关文章

  • 关于C中的Switch Case的有趣事实
  • C中switch语句的case标签的数据类型应该是什么?
  • 将单个数字打印为单词,而无需使用if或switch

https://youtu.be/oxoBe04P8

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”