java switch条件_Java switch 条件语句用法详解[通俗易懂]

java switch条件_Java switch 条件语句用法详解[通俗易懂]首页>基础教程>循环条件语句>条件语句switchJavaswitch条件语句用法详解switchcase语句在很多编程语言中的功能都是等于条件判断,java中为多路分支选择流程专门提供了switch语句,switch语句根据多个表达式的值,选择运行多个操作中的一个。当需要对选项进行等值判断时,使用switch语句更加简洁明了。switch的case语句可以处…

大家好,又见面了,我是你们的朋友全栈君。

首页 > 基础教程 > 循环条件语句 > 条件语句switch

Java switch 条件语句用法详解

switch case语句在很多编程语言中的功能都是等于条件判断,java中为多路分支选择流程专门提供了switch语句,switch语句根据多个表达式的值,选择运行多个操作中的一个。当需要对选项进行等值判断时,使用 switch语句更加简洁明了。switch的case语句可以处理int,short,byte,char类型的值, 但是不能处理long,String等类型。

语法

switch(表达式){

case 表达式常量1:语句1; break;

case 表达式常量2:语句2; break;

……

case 表达式常量n:语句n; break;

[default:语句n+1;]

}

其中,一个case表达式常量成为标号,代表一个case分支的入口。switch语句在运行时首先计算switch圆括号中“表达式”的值,这个值必须是整型或字符型的,同时后面各个case表达式常量的值的类型应与switch圆括号中“表达式”的值类型一致。一个case语句代表一个制定操作,然后转向结构出口。default子句是可选的,当表达式的值与case表达式常量的值都不匹配时,就运行default子句,转向结构出口。

执行顺序

switch表达式的值决定选择哪个case分支,如果找不到相应的分支,就直接从”default”开始输出。

当程序执行一条case语句后,因为例?中的case分支中没有break 和return语句,所以程序会执行紧接于其后的语句。

public class Switch {

public static void main(String[] args)

{

int x=0;

switch(x)

{

default:

System.out.println(“default”);

case 1:

System.out.println(1);

case 2:

System.out.println(2);

}

}

}

输出结果如下:

default

1

2

switch与if的区别

1. switch和if语句都是Java的选择语句,这两种语句都是允许在程序运行时控制程序的执行过程。

2. switch和if-else相比,由于使用了Binary Tree算法,绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true。

3. 编译器编译switch与编译if…else…不同。不管有多少case,都直接跳转,不需逐个比较查询。

4. 相比于if-else结构,switch的效率绝对是要高很多的,但是switch使用查找表的方式决定了case的条件必须是?个连续的常量。?if-else则可以灵活的多。

5. switch效率高,从汇编代码可以看出来。switch只计算?次值,然后都是test。

6. switch的效率与分支数无关。当只有分支比较少的时候,if效率比switch高(因为switch有跳转表)。分支比较多,那当然是使用switch。

总结

switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte、short、int、char、还有枚举;需要强调的是:long和String类型是不能作?在switch语句上的。

case B:C;case是常量表达式,也就是说B的取值只能是常量(需要定义一个final型的常量,后面会详细介绍原因)或者int、byte、short、char(比如1、2、3、200000000000(注意了这是整型)),如果你需要在此处写一个表达式或者变量,那么就要加上单引号; case后的语句可以不用大括号,就是C不需要用大括号包裹着;

default就是如果没有符合的case就执行它,default并不是必须的。

实例

1.标准型(case后面都有break语句,case后的值都是整数)

int i=3;

switch(i)

{

case 1:

System.out.println(1);

break;

case 2:

System.out.println(2);

break;

default:

System.out.println(“default”);

break;

}

2.常量型(case后面都有break语句,case后的值都是常量)

private final int NUM1=1;

private final int NUM2=1;

int i=3;

switch(i)

{

case NUM1:

System.out.println(1);

break;

case NUM2:

System.out.println(2);

break;

default:

System.out.println(“default”);

break;

}

3.表达式型(case后面都有break语句,case后的值都是表达式)

int i=3;

int b = 2;

switch(i)

{

case ‘类名.getId()‘:

System.out.println(1);

break;

case ‘b‘

System.out.println(2);

break;

default:

System.out.println(“default”);

break;

}

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159262.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 电赛前期准备[通俗易懂]

    电赛前期准备[通俗易懂]根据竞赛的特点,我们可以将赛前培训可划分为条件准备和实践训练两大部分。我们的讨论以赛前条件准备工作为主。刘开华条件准备工作可划分为:组织准备:主要是邀请指导教师、组建队伍,主攻方向确定。知识准备:包括基础知识、专业知识、通用元器件应用知识和电子系统设计知识。能力准备:创新能力,软件编程能力,电路设计与调试能力,系统设计、制作与调试能力,仪器使用与…

    2022年5月9日
    63
  • RuntimeException 子类

    RuntimeException 子类本文简要介绍RuntimeException及其子类

    2025年7月21日
    3
  • 转一篇 台湾人写的 webgame开发文章

    转一篇 台湾人写的 webgame开发文章1。游戏制作的主要流程电脑游戏开发小组中的任何一个人(这个角色通常有策划担任),只要有了一个新的想法或念头,就孕育着一个新游戏的诞生。在这个创意被充分讨论之后,再加上对其操作过程的趣味性及市场销售的可行性的预测等因素的准确判断,一个完整的策划方案才可能产生。在经过充分的讨论后,策划人员必须将讨论的重点写成文字,也就是提出完整的策划方案,经决策者同意认可后,才能进下一步的工作。这份策划方案就像一…

    2022年5月27日
    42
  • leetcode-46全排列[通俗易懂]

    leetcode-46全排列[通俗易懂]原题链接给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]题解回溯即可class Solution {public: vector<vector<int> >res; vector<int>t; void dfs(int num,int len,vecto

    2022年8月9日
    2
  • Java高并发读写文件[通俗易懂]

    Java高并发读写文件[通俗易懂]在实际的项目中我们经常会与遇到操作文件的情况,这是很常见的,但是我们在实际中用传统的I/O操作不能满足我们项目的需要并且对文件的写特别慢,操作比较麻烦。那么我们怎么样实现呢?最近在项目中我们遇到了高并发的事情,我是这样操作的。利用JavaNIO实现非阻塞式的读写,通过锁机制完成高并发下的文件的操作。publicvoidrun(){Filefile=newFile(“/

    2022年5月18日
    36
  • 机器学习框架对比

    机器学习框架对比2.1主流深度学习框架对比各个开源框架在Github上的数据统计数据统计截止于2017.07.15可以看到各大主流框架基本都支持Python,目前Python在科学计算和数据挖掘领域可以说是独领风骚。虽然有来自R、Julia等语言的竞争压力,但是Python的各种库实在是太完善了,Web开发、数据可视化、数据预处理、数据库连接,爬虫等无所不能,有一个完美的生态环境。仅

    2022年6月16日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号