本文目录
- java switch case,case下有多条语句,执行输入时不能输入字符的问题
- java 中输入月份 用switch case输出季节为什么不能运行!
- java 中switch能用string类型的吗
- Java语言中的switch case语句求解
- 关于switch语句中使用String类型的实现原理
java switch case,case下有多条语句,执行输入时不能输入字符的问题
你把choose定义为整型了,输入的数必须是整型才能与switch中的case 选择比配执行system.out.print()如果想输入字符,将choose定义为char型,case为case’要输入的字符’就ok了
java 中输入月份 用switch case输出季节为什么不能运行!
case后只能跟一个值,不能跟着多个,参考下下边的程序试试import java.util.Scanner;public class Fangfa1 {public static void main(String args) {String i;Scanner scanner=new Scanner(System.in);System.out.println("请输入当前月份:");i=scanner.nextLine();switch (i) {case 12:System.out.println("现在是冬季");break;case 1:System.out.println("现在是冬季");break;case 2:System.out.println("现在是冬季");break;case 3:System.out.println("现在是春季");break;case 4:System.out.println("现在是春季");break;case 5:System.out.println("现在是春季");break;case 6:System.out.println("现在是夏季");break;case 7:System.out.println("现在是夏季");break;case 8:System.out.println("现在是夏季");break;case 9:System.out.println("现在是冬季");break;case 10:System.out.println("现在是冬季");break;case 11:System.out.println("现在是冬季");break;default:System.out.println("只有火星才有"+i+"月");break;}}}
java 中switch能用string类型的吗
Java JDK1.8和JRE1.8以后switch可以用String类型了,
我给你个例子,你看看吧.
public class CCC { public static void main(String args) { String s="abc"; int a=0; switch(s){ case "a":a=1;break; case "ab":a=2;break; case "abc":a=3;break; } System.out.println(a); }}
运行结果
3
Java语言中的switch case语句求解
我改了下import java.util.Scanner;public class SwitchCaseDemo { /** * @param args */ //不需要你自定义下面的方法 ,switch 本来就是和case在一起用的 你把Switch(a);放在那和case的结构就错了 public static void main(String args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("输入学生的成绩: "); int a=sc.nextInt(); switch(a) { case 100: case 99:case 98:case 97:case 96:case 95:case 94:System.out.println("该学生的成绩的等级为A"); break; case 89: case 88: case 87: case 86: case 85: case 84: case 83: case 82: case 81: case 80: System.out.println("该学生的成绩的等级为B"); break; case 79: case 78: case 77: case 76: case 75: case 74: case 73: case 72: case 71: case 70: System.out.println("该学生的成绩的等级为C"); break; case 69: case 68: case 67: case 66: case 65: case 64: case 63: case 62: case 61: case 60: System.out.println("该学生的成绩的等级为D"); break; default: System.out.println("该学生的成绩的等级为E"); } }/*private static void Switch(int a) { // TODO Auto-generated method stub } } 为什么这个是错的。求解释。。。。 这是case的错误,看不懂。。。T T,求解答。。。。 Multiple markers at this line - Syntax error on token "case", assert expected - Syntax error on token(s), misplaced construct(s)}*/}
关于switch语句中使用String类型的实现原理
在Java 7 以后, switch 语句可以用作String类型上。 从本质来讲, switch 对字符串的支持,其实也是int类型值的匹配。它的实现原理如下: 通过对 case 后面的String对象调用 hashCode( )方法,得到一个int类型的Hash值,然后用这个Hash值来唯一标识着这个 case 。 那么当匹配的时候,首先调用这个字符串的 hashCode() 方法,获取一个Hash值(int类型),用这个Hash值来匹配所有的 case , 如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的 equals() 方法进行匹配。 由此看出,String变量不能是null;同时, switch 的 case 子句中使用的字符串也不能为null。