java的switch语句中的case后面是不是只能执行一条语句,如果不是,想要执行多行代码,该怎么做?

Scanner sc=new Scanner(System.in);
System.out.println("请选择你要进行的操作:1.增加学生信息2.删除学生信息3.修改学生信息4.查询学生信息");
int choice;
choice=sc.nextInt();
if(choice==1){
System.out.print("请输入要增加学生的姓名:");
s.name=sc.nextLine();
System.out.print("请输入年龄:");
s.age=sc.nextInt();sc.nextLine();
System.out.print("请输入性别:");
s.sex=sc.nextLine();
System.out.print("请输入班级:");
s.sex=sc.nextLine();
System.out.print("请输入QQ:");
s.qq =sc.nextInt();sc.nextLine();
System.out.print("请输入Email:");
s.email=sc.nextLine();
dao.addStudent(s);//添加学生信息的操作
}
else if(choice==2){
System.out.print("请输入要删除学生的姓名:");
s.name=sc.nextLine();
dao.deleteStudent(s);
}

。。。
后面的s.name=sc.nextLine均没有执行,全部跳过了!

第1个回答  2012-11-26
可以执行多行代码。你把想执行的多个case语句中的break去掉,这几行代码就可以被执行了。
当然,通常我们不这样用的。
第2个回答  推荐于2018-05-11
你的s对象是个什么对象? student? 那么你student类里有get/set方法吗, 你这样赋值好吗?

其实它不是没有执行, 只是你写了nextLine() 方法是停住了, 你需要再多敲一次回车才能继续
你可以把nextLine改成next()本回答被网友采纳
第3个回答  2012-11-26
不是 如果执行多条可以用{}包括
第4个回答  2012-11-26
能执行多条语句的
直到遇到break才停止。
建议你自己看看这个语法。追问

发现问题不是case的使用错误,换成if else也这样,是在执行的时候跳过了一行代码
if(choice==1){
System.out.print("请输入要增加学生的姓名:");
s.name=sc.nextLine();
System.out.print("请输入年龄:");
s.age=sc.nextInt();sc.nextLine();
System.out.print("请输入性别:");
s.sex=sc.nextLine();
。。。
搞不懂s.name =sc.nextLine为什么没执行,而是跳过了

追答

贴完整代码看看。

追问

贴了,在问题补充!

追答

你输入完1之后按了回车,
但是nextInt只取那个1
回车留在了缓冲区
你s.name取到了那个回车
在s.name之前再取一次nextLine就行了

本回答被网友采纳

java的switch语句中的case后面是不是只能执行一条语句,如果不是,想 ...
可以执行多行代码。你把想执行的多个case语句中的break去掉,这几行代码就可以被执行了。当然,通常我们不这样用的。

java,switch语句中case的疑问
switch case 还要配合break使用。如果不break,那就会继续执行下面的,因为存在这样的需求。

Java 基础知识之 switch 语句和 yield 关键字
这是经典的 switch 语句写法,包含多个 break 语句。虽然这一写法沿用了 C 语言的原始语法,但现今看来显得陈旧且繁琐。Java 12 对 switch 语句进行了改进,优化了其使用方式。现在可直接在 case 后面使用 -> 符号,仅执行紧跟其后的语句,无需 break 关键字,且避免了穿透效应。如果需要多条语句,则...

switch case用法举例
你只想执行这一个case语句, 不想执行其他case, 那么就需要在这个case语句后面加上break, 跳出swich语句.3) 当switch后面括号内“表达式”的值与某 个case后面的"常量表达式"的值相等时. 就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case缕续执行, 如果你只想执行这一...

java 中 switch\/case 如何表达多选?
本来switch只会匹配到一种条件,如果都不匹配,会执行default里面的语句。如果没定义不执行,所以不可能会出现多选的问题。

java Switch语句编译出错 孤立的case是什么意思
case 后面是常量表达式,并且必须是与条件表达式类型相兼容的值!也就是说,比如你的switch(a)里面的a是int 型的,那么case 后的值也应是和int 兼容的,如果你定义的a是字符型的话,那么b就应该加上单引号。另外,常量表达式的值可以是字符,但不能是字符串。

Java switch case 语句
Java中的switch case语句是一种条件判断工具,用于根据变量的值,执行相应的代码分支。其工作原理是首先对变量进行比较,找到匹配的case值后执行该case下的代码,如果代码块中包含break语句,程序会跳出switch语句的执行,否则会继续匹配下一个case。以下是switch case的一些关键点:其基本语法如下:当程序执行...

java 中 switch case 语句
语句;} 1.default就是如果没有符合的case就执行它,default并不是必须的.2.case后的语句可以不用大括号.3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一...

switch case基本用法总结
Java switch case 语句概述 switch case 语句用于判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。此语句结构简洁,特别适用于多条件判断。语法与规则 switch case 语句的语法格式如下:switch(expression){ case value :\/\/执行语句 break;\/\/可选 case value :\/\/执行语句 break;\/\/可...

switch语句中case后只能加什么?
case后)必须是常量表达式(constantExpression),如42或者'4'。case标签(case后)必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。其他规则:只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。switch()的参数类型不能为实型 。

相似回答