首页 > 其他分享 >选择结构(二)Switch多选择结构

选择结构(二)Switch多选择结构

时间:2022-12-05 20:46:59浏览次数:38  
标签:case break System 选择 Switch println out class 结构

选择结构(二)Switch多选择结构

1.语法

 switch(expression){
     case value:
         //语句;
         break;//可不写
     case value:
         //语句;
         break;//可不写
     case value:
         //语句;
         break;//可不写
     case value:
         //语句;
         break;//可不写
     default://可不写
         //语句;
 }

switch语句中的变量可以是byte,short,int或char,现在也支持字符串类型了(从JavaSE7开始)

switch不能加范围如<100,只能加特定值或表达式如100/20

  1. 例题

     public class SwitchDemo01 {
         public static void main(String[] args) {
             char grade='B';
             switch (grade){
                 case 'A':
                     System.out.println("优秀");
                     break;
                 case 'B':
                     System.out.println("良好");
                 case 'C':
                     System.out.println("及格");
                 case 'D':
                     System.out.println("再接再厉");
                 default:
                     System.out.println("未知等级");
            }
        }
     }
  1. case穿透现象

如上例题,当grade为B时,会输出良好,但因为没有break,不会停止,会继续向下运行输出直到遇到break或运行完。 例题中输出结果为良好,及格,再接再厉,未知等级。

  1. 变量为字符串测试

     public class SwitchDemo02 {
         public static void main(String[] args) {
             String name="苹果";
             switch (name){
                 case "李子":
                     System.out.println("11");
                     break;
                 case "苹果":
                     System.out.println("22");
                     break;
                 case "葡萄":
                     System.out.println("33");
                     break;
                 case "红枣":
                     System.out.println(44);
                     break;
            }
        }
     }

写的.java文件需转化为.class文件(字节码文件)来运行。而将.class转为.java为反编译操作

具体操作:点击菜单栏里的project structure,查看project的输出目录,打开该目录--->复制相应的.class文件-->找到相应.java文件所在的文件夹,并将.class文件复制进去。在idea中就可以打开相应的.class文件了且是反编译过后的,如下。反编译之前的.class打开为一片乱码。

 //
 // Source code recreated from a .class file by IntelliJ IDEA
 // (powered by FernFlower decompiler)
 //
 ​
 package com.fj.Structure;
 ​
 public class SwitchDemo02 {
     public SwitchDemo02() {
    }
 ​
     public static void main(String[] args) {
         String name = "苹果";
         byte var3 = -1;
         switch(name.hashCode()) {
         case 843202:
             if (name.equals("李子")) {
                 var3 = 0;
            }
             break;
         case 1031489:
             if (name.equals("红枣")) {
                 var3 = 3;
            }
             break;
         case 1065923:
             if (name.equals("苹果")) {
                 var3 = 1;
            }
             break;
         case 1084355:
             if (name.equals("葡萄")) {
                 var3 = 2;
            }
        }
 ​
         switch(var3) {
         case 0:
             System.out.println("11");
             break;
         case 1:
             System.out.println("22");
             break;
         case 2:
             System.out.println("33");
             break;
         case 3:
             System.out.println(44);
        }
 ​
    }
 }

可以看到switch是通过hashcode来比对字符串是否相等的,每一个对象都有一个hashcode,在对哈希值进行比对。所以字符串本质上还是数字。

标签:case,break,System,选择,Switch,println,out,class,结构
From: https://www.cnblogs.com/HomeFJ/p/16953423.html

相关文章

  • Java基础-2(分支结构)
    Java基础-2(分支机构)习题奇数偶数:输入一个整数,判断奇数偶数。(ifelse,二选一)考试奖励:设置奖励条件,和奖励。(if,elseif,多选一)星期几:输入一个1-7的整数,判断是“......
  • 前端开发:4、JavaScript简介、变量与常量、数据类型及内置方法、运算符、流程控制、循
    前端开发之JavaScript目录前端开发之JavaScript一、JavaScript简介二、JS基础三、变量与常量四、基本数据类型1、数值类型2、字符类型3、布尔类型五、特殊数据类型1、nu......
  • 选择结构循环结构
    选择与循环语句选择结构1.if语句If(判断条件){语句1;...语句n;}若内容语句只有一句则可以省略花括号(不建议!)执行流程:判断条件为true时执行内部语句,判断条件为false......
  • 计算机两种体系结构及指令集
    计算机的两种体系结构冯·诺依曼体系结构和哈佛体系结构冯·诺依曼体系结构冯·诺依曼体系的特点数据与指令都存储在存储器中,程序执行效率不高被大多数计算机所采用,简单AR......
  • 一个for循环结构的题
    题目是一辆汽车违章3个目击者只记得4位数车牌的一些特征,甲说前两个数字一致乙说后两个数字一致丙说某个整数的平方等于这个车牌数#include<stdio.h>intmain(){inti,j,......
  • Python学习(八):代码结构——if else判断
    1.概述:1.注释:使用#,python会自动忽略#以后的语句;2.换行:使用\,可以使得后面的继续上前面的语句;2.ifelse写法:     ......
  • 选择器
    id选择器:#myId{color:red;}//id选择器类选择器:.myClass{color:red;}//类选择器标签选择器:p{color:red;}//标签选择器选择器优先级: id选择器>......
  • JavaScript习题之选择题
    console.log((2==true)+1)会弹出AtrueBfalseC1D2正确答案:C2==true为假,此时值为0 在JS中,“1555”+3的运行结果是A1558B1552C15553D1553正确答案:C解析:155......
  • 选择排序
    选择排序选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小......
  • 程序三大结构-系统学习一
    一、背景介绍1.经过高人指路,略有通透;潜心苦学,终有所成。2.自此将自己的感受进行记录;所谓世间万物都可以通过公理+逻辑进行推理出来,那么程序中的公理是什么呢?对了,您猜对了,就......