`

java switch的使用+switch用String作为条件

阅读更多

一、java switch的基本使用:

/* int参数的switch */
int x = new Random().nextInt(3);// 0至2的随机数
System.out.println("x=" + x);
switch (x) {
case 0:
	System.out.println("随机0");break;
case 1:
	System.out.println("随机1");break;
case 2:
	System.out.println("随机2");break;
}

/* 16进制int参数的switch */
int x2 = 49;// 0至2的随机数
System.out.println("x2=" + x2);
switch (x2) {
case 0x01:
	System.out.println("随机0");break;
case 0x21:
	System.out.println("随机1");break;
case 0x31:
	System.out.println("随机49");break;
}

/* int参数的switch */
char y = 'b';
System.out.println("y=" + y);
switch (y) {
case 'a':
	System.out.println("随机a");break;
case 'b':
	System.out.println("随机b");break;
case 'c':
	System.out.println("随机c");break;
}

 

二、java中的switch用String作为条件

 

在开发java程序的过程中,我们遇到了条件判断首选就是switch,但是遗憾的是,我们java中的switch功能不如C#中的强大,她不支持字符串作为条件。这时我们该怎么办呢? 这种种解决方案比较容易理解。

先看代码:

public enum Day

{

SUNDAY, MONDAY, TUESDAY, WEDNESDAY,

THURSDAY, FRIDAY, SATURDAY,

NOVALUE;

public static Day toDay(String str)

{

try {

return valueOf(str);

}

catch (Exception ex) {

return NOVALUE;

}

}

}

main:方法体测试

Scanner s=new Scanner(System.in);

String day=s.next();//输入的字符串

switch(Day.toDay(day.toUpperCase())){

case SUNDAY:

System.out.println("星期天");

break;

case MONDAY:

System.out.println("星期一");

break;

case TUESDAY:

System.out.println("星期二");

break;

}

看看这个代码,其实是通过定义枚举来实现的。将字符串作为枚举,然后通过toDay方法返回的是一个int的值。这样就可以让switch接受String的条件了。就这么简单!

 

三、switch语句参数

float z=2; 
switch(z){
//,不能是z, Cannot switch on a value of type float. Only convertible int values or enum constants are permitted 
//也就是说,只有当该数据类型可以自动转换为int型时,才可以作为switch的语句, 
//所以该类型表示的范围应该比int的小,short和byte都可以。 
case 1: System.out.println(1);break; 
case 2: System.out.println(2);break; 
case 3: System.out.println(3);break; 
}

 

四、for定义参数

/*
 *int x =2; int y=3;
   这里声明变量的方式" int a=0, b=0;"
   如果写成" int a=0, int b=0;"是错误的, 因为如果声明为这种方式,则他们是两个语句,
   要用分号隔开,但是for语句中分号只能有两个。所以使用"int a=0,b=0"这种方式好使
*/

for(int a=0, b=0; a<2; b=++a, System.out.println("b="+b)){ 
     System.out.println("a="+a); 

}

 

 

分享到:
评论

相关推荐

    在java switch中使用String作为分支条件

    在java switch中使用String作为分支条件

    Java switch 语句如何使用 String 参数

    主要介绍了Java switch 语句如何使用 String 参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、计算机资源分配使用率、负载承受能力。 本教程结合 Java 应用开发的知识点,将内容分为七大模块,从上到下依次...

    Java开发技术大全(500个源代码).

    rankingBySwitch.java 用switch语句评定成绩等级 realExample.java 演示浮点数的有效位数 remainder.java 取余运算示例 showBreak.java 利用标号语句跳转出所有循环嵌套 showCount.java 循环计数示例 ...

    Java的ppt课件

    通常用在国际化/本地化程序中与地区/语言相关的方式显示日期、数字或文本信息。 主要方法: public Locale(String language) public Locale(String language,String country) public static Locale getDefault() ...

    switch demo

    import java.util.Scanner; public class Command { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请选择功能: 1.显示全部记录 2.查询登录记录 0....

    java编写的计算器,能实现加减乘除

    java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import ...

    Java问题宝典2012版

    5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最...

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-091-Java基本语法-控制语句-switch语句-字符串作为比较对象.avi 北京动力节点-Java编程零基础教程-092-Java基本语法-控制语句-switch语句-举例1.avi 北京动力节点-Java编程零...

    js 中的switch表达式使用示例

    前言 switch 这种表达式在很多语言中都有,比如java, C等待, 使用switch比使用if else 来得方便,来得清晰。 使用语法很简单: 代码如下: switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; ...

    Java2游戏编程.pdf

    本书将向读者展示用Java语言和它的类库创建2D游戏,所涉及的主题包括高速性能、双缓冲图像、动画、声音、媒体控制、I/O和网络支持等。将带领大家一步一步学习编写Java游戏,最终打造属于自己的Java游戏。 目录...

    JAVA阶段模拟试题

    1给定如下Java程序,编译运行时,将在()出现错误。(选一项) public class Test{ public static void main(String[]args){ int i= 0; //a语句 for(;i;i++){ //b语句 if(i&gt;5){ String test = “hello”; /...

    java 万年历程序代码

    java 万年历程序代码 package test2; import java.util.Scanner; public class Test2{ public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("请输入年份:"); ...

    Java编码规范总结

    修复建议:使用c.toArray(new String[c.size()])。 6.不良实践 - 方法返回boolean类型返回了null。 7.错误用法 - "."用作正则表达式。 修复建议:String的split方法传递的参数是正则表达式,正则表达式本身用到...

    Failed to convert value of type ‘java.lang.String’ to required type ‘java.util.Date’; nested except

    Type 异常报告 消息 Failed to convert ... nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'java.util.Date': no matching editors or co

    java17新特性你需要了解的内容

    相比Java 8 添加了新的var关键字,使得我们用更简洁的方式声明我们的局部变量,可通过下面两行代码作比较 List&lt;String&gt; list = new ArrayList(); var myList = new ArrayList(); 注意的是,我们在使用var的时候,...

    java 经典习题.doc

    题目:利用条件运算符的嵌套来完成此题:学习成绩&gt;=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a&gt;b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求...

    java常见面试100题

    6. switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 8 7. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 8 8. char型变量中能不能存贮一个中文汉字?为什么? 8 9. 用最...

    Java代码检查工具PMD

     3、未优化的代码,例如String的不正确使用  4、过于复杂的表达式,没有必要的表达式循环,判断  5、重复代码  PMD支持的编辑器包括:  JDeveloper、Eclipse、JEdit、JBuilder、BlueJ、CodeGuide、NetBeans/Sun...

    Java程序设计基础:if单分支语句.pptx

    如果小明的Java考试成绩大于95分,就能获得一张积分卡作为奖励。 在Java中如何解决这些问题呢? 可以使用选择结构 Java语言提供了两种选择结构: 选择结构 选择结构 if 选择结构 switch 选择结构 双分支if-else语句 ...

Global site tag (gtag.js) - Google Analytics