深入探究Switch语法

一、Switch语法结构

switch(expression) {
   case value1:
      // 当 expression 等于 value1 时执行的语句
      break;
   case value2:
      // 当 expression 等于 value2 时执行的语句
      break;
   default:
      // 当 expression 与上面的 value 都不匹配时执行的语句
      break;
}

Switch语句是编程语言中一种很常见的条件分支语句,其基本结构如上所述。其中expression为要被测试的表达式,value1、value2等则为表达式可能等于的值。如果expression匹配上其中一个值,则会执行相应的代码块直到break语句被运行或者switch语句执行完毕。如果expression没有与任何值匹配,则会执行default中的代码块。

二、Switch语句Power BI

在Power BI中,switch语法可以被用于创建计数器和分段函数,例如根据数据的不同范围来显示不同的颜色。

Color = SWITCH(
   TRUE(),
   Sales >= 1000, "#6EAE37",
   Sales >= 500, "#F7C746",
   Sales >= 100, "#F29F4F",
   "#ED7D31"
)

此代码段会将销售量按照不同的范围用不同的颜色绘制出来。这种方法相比于if语句或者嵌套if语句来说,能够更加清晰、简洁地表达计数器的意图。

三、Switch语法用法

Switch语法在编程中主要用于替代if…else语句中过于冗长的判断代码。以下是一些常见的Switch语法用法:

1. 替代冗余的if…else语句

Switch语句可以将复杂的if…else语句精简成简洁的代码块。以下是一个示例:

int day = 4;
switch (day) {
   case 1:
      printf("Monday");
      break;
   case 2:
      printf("Tuesday");
      break;
   case 3:
      printf("Wednesday");
      break;
   case 4:
      printf("Thursday");
      break;
   case 5:
      printf("Friday");
      break;
   case 6:
      printf("Saturday");
      break;
   case 7:
      printf("Sunday");
      break;
}

上述代码只需要7个case,就可以完成与7个if语句相同的功能,降低了代码的维护难度。

2. 进行肯定或否定的测试

Switch语句可以测试一个表达式是否等于特定的值,并给出true或false的结果。以下代码可以帮助理解:

string fruit = "apple";
switch (fruit) {
   case "apple":
   case "pear":
   case "orange":
      printf("This is a fruit!");
      break;
   default:
      printf("This is not a fruit!");
      break;
}

如果fruit等于”apple”、”pear”或者”orange”中的任何一个,代码输出的结果就是”This is a fruit!”。否则输出的结果为”This is not a fruit!”。可以很明显地看出,该方法相比if语句更加简单直观。

3. 基于枚举的测试

Switch语句可以根据枚举值来进行测试。以下代码示例:

enum Lights { Red, Yellow, Green };
Lights light = Green;
switch (light) {
   case Red:
      printf("The light is red!");
      break;
   case Yellow:
      printf("The light is yellow!");
      break;
   case Green:
      printf("The light is green!");
      break;
}

上述代码定义了一个枚举类型Lights,包含三个值:Red、Yellow和Green。当light等于Green时,输出的结果为”The light is green!”。

四、Switch语法可以用哪些类型

Switch语句可以用于处理大多数数据类型,包括int、char、short、byte和long等。在Java中,switch语句还可以处理String类型。以下为一个示例:

String fruit = "apple";
switch (fruit) {
   case "apple":
      printf("This is an apple!");
      break;
   case "pear":
      printf("This is a pear!");
      break;
   case "banana":
      printf("This is a banana!");
      break;
}

如果fruit等于”apple”,则输出的结果是”This is an apple!”。如果fruit等于其他的值,则switch语句会直接跳过。

五、Switch语句程序

以下是一个基于Switch语法的简单程序:

#include 

int main() {
   int a;
   printf("Enter a number: ");
   scanf("%d", &a);
   switch (a) {
      case 1:
         printf("Monday");
         break;
      case 2:
         printf("Tuesday");
         break;
      case 3:
         printf("Wednesday");
         break;
      case 4:
         printf("Thursday");
         break;
      case 5:
         printf("Friday");
         break;
      case 6:
         printf("Saturday");
         break;
      case 7:
         printf("Sunday");
         break;
      default:
         printf("Invalid input!");
         break;
   }

   return 0;
}

该程序将用户输入的数字与1-7进行匹配,输出该数字代表的星期几。如果用户输入的数字不是1-7的范围,则输出”Invalid input!”。

六、Switch语句细节

1. Case中不需要break语句

在Switch语句中,如果Case代码块执行完毕没有出现break语句,则程序会继续执行下面的代码块,直到遇到break或者执行完毕。以下是一个例子:

int day = 4;
switch (day) {
   case 1:
      printf("Monday");
   case 2:
      printf("Tuesday");
      break;
   case 3:
      printf("Wednesday");
      break;
   case 4:
      printf("Thursday");
      break;
   case 5:
      printf("Friday");
      break;
   case 6:
      printf("Saturday");
      break;
   case 7:
      printf("Sunday");
      break;
}

在上述代码中,如果day等于1,输出的结果就是”MondayTuesday”,这是由于没有break语句,导致程序继续执行了下一个代码块。

2. Default语句位置

Default语句通常被放在Switch语句的末尾,可以确保所有Case代码块都被执行完毕后,才会执行default代码块。以下是一个示例:

int day = 8;
switch (day) {
   case 1:
      printf("Monday");
      break;
   case 2:
      printf("Tuesday");
      break;
   case 3:
      printf("Wednesday");
      break;
   case 4:
      printf("Thursday");
      break;
   case 5:
      printf("Friday");
      break;
   case 6:
      printf("Saturday");
      break;
   case 7:
      printf("Sunday");
      break;
   default:
      printf("Invalid input!");
      break;
}

在该代码中,如果day等于8,程序会直接执行default代码块,输出结果为”Invalid input!”。

七、Switch语法错误

以下是一些常见的Switch语法错误:

1. 没有default代码块

如果Switch语句中没有设置default代码块,当input不匹配任何Case时,程序会直接跳过Switch语句。

2. Case代码块没有break语句

如果Case代码块内没有break语句,则程序会继续执行下一个代码块,直到遇到break语句或执行完毕。

3. Case代码块中有重复的值

如果Case代码块中出现重复的值,则只有第一个匹配的代码块会被执行。

4. switch语法与float,string,long,char也可以一起使用

但是在使用时需要注意转换,并且不建议和double一起使用。

八、Switch语句规定

以下是一些关于Switch语句的规定:

1. Case中只能使用常量表达式或者字面量

Case代码块中只能使用常量表达式或者字面量,不能使用变量或函数的返回值。

2. Switch语句不能比较字符串

在很多编程语言中,Switch语句无法比较字符串类型的数据。不过在Java中,可以使用字符串的equals()方法来进行比较。

九、Switch语句的用法

Switch语句可以用于替代if…else结构中较为复杂的判断条件,使代码更加清晰明了。在Power BI中,Switch语法还可以用于创建计数器和分段函数等。可以对参数的不同情况进行分类处理,提高代码的效率。

结语

本篇文章深入探究了Switch语法的各个方面,包括语法结构、应用细节、常见错误和规定等。Switch语句在编程中有着广泛的应用,能够有效地提高代码的可读性和执行效率。理解和掌握Switch语法对于编程技术人员来说是非常重要的。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/251925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-13 17:33
下一篇 2024-12-13 17:33

相关推荐

  • Python语法大全解析

    本文旨在全面阐述Python语法,并提供相关代码示例,帮助读者更好地理解Python语言。 一、基础语法 1、Python的注释方式 # 这是单行注释 “”” 这是多行注释,可以注…

    编程 2025-04-29
  • Python中复数的语法

    本文将从多个方面对Python中复数的语法进行详细的阐述。Python中的复数是指具有实部和虚部的数,其中实部和虚部都是浮点数。它们可以用“实数+虚数j”的形式表示。例如,3 + …

    编程 2025-04-29
  • parent.$.dialog是什么技术的语法

    parent.$.dialog是一种基于jQuery插件的弹出式对话框技术,它提供了一个方便快捷的方式来创建各种类型和样式的弹出式对话框。它是对于在网站开发中常见的弹窗、提示框等交…

    编程 2025-04-28
  • 编译原理语法分析思维导图

    本文将从以下几个方面详细阐述编译原理语法分析思维导图: 一、语法分析介绍 1.1 语法分析的定义 语法分析是编译器中将输入的字符流转换成抽象语法树的一个过程。该过程的目的是确保输入…

    编程 2025-04-27
  • Python进阶语法全面解析

    Python语言作为一种广泛应用于人工智能、数据分析、云计算等多个领域的编程语言,拥有广泛的社区和强大的生态系统。Python提供了基本语法以及常用函数和模块,用于解决大量常规编程…

    编程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在开发过程中引入了新的API `defineExpose`。在以前的版本中,我们经常使用 `$attrs` 和` $listeners` 实现父组件与子组件之间的通信,但…

    编程 2025-04-25
  • 深入理解byte转int

    一、字节与比特 在讨论byte转int之前,我们需要了解字节和比特的概念。字节是计算机存储单位的一种,通常表示8个比特(bit),即1字节=8比特。比特是计算机中最小的数据单位,是…

    编程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什么是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一个内置小部件,它可以监测数据流(Stream)中数据的变…

    编程 2025-04-25
  • 深入探讨OpenCV版本

    OpenCV是一个用于计算机视觉应用程序的开源库。它是由英特尔公司创建的,现已由Willow Garage管理。OpenCV旨在提供一个易于使用的计算机视觉和机器学习基础架构,以实…

    编程 2025-04-25
  • Switch C:多选结构的利器

    在编写程序时,我们经常需要根据某些条件执行不同的代码,这时就需要使用选择结构。在C语言中,有if语句、switch语句等多种选择结构可供使用。其中,switch语句是一种非常强大的…

    编程 2025-04-25

发表回复

登录后才能评论