A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenxin_0916 中级黑马   /  2015-12-24 00:27  /  1660 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

键盘录入数据可不可以直接将获取值写在switch()里面
switch(int x = sc.nextInt()){
         case 1
....................................
}
这样写可不可以?

14 个回复

倒序浏览
不可以,Swich语句中只能是常量,你这个是变量,没有确定的数据不行。
回复 使用道具 举报
楼上说得对
回复 使用道具 举报
luyang18 来自手机 中级黑马 2015-12-24 17:38:38
板凳
1楼解析得不错
回复 使用道具 举报
将你的要问的代码在敲了一边,运行了一下,两张图片可以进行对比一下,在java中switch()语句中()内的只能是常量,字符,字符串(jdk6以后的版本)。
因为x是一个int类型的变量,所以这是会出错的。

捕获1.JPG (143.61 KB, 下载次数: 92)

捕获1.JPG

捕获2.JPG (81 KB, 下载次数: 79)

捕获2.JPG
回复 使用道具 举报
不可以,switch里填写的是一个常量,
回复 使用道具 举报
Zrz_K 中级黑马 2015-12-26 22:54:11
7#
今天我也在纳闷这知识点呢,学到了~
回复 使用道具 举报
不可以阿啊啊啊
回复 使用道具 举报
如果只想得到输入的值进入相应的判断,而不得到值可以这样:
switch(sc.nextInt()){
          case 1
....................................
}
不定义变量接收是可以的
回复 使用道具 举报
NUMONE 中级黑马 2015-12-29 21:55:34
10#
public static void main(String[] args) {
                int x;
                Scanner sc=new Scanner(System.in);
                switch(x = sc.nextInt()){
        case 1: System.out.println("1");
                }
        }
回复 使用道具 举报
NUMONE 中级黑马 2015-12-29 21:57:05
11#
可以使用变量
回复 使用道具 举报
NUMONE 中级黑马 2015-12-29 22:02:48
12#
switch语句小结
http://bbs.itheima.com/thread-253780-1-1.html
(出处: 黑马程序员IT技术论坛)
回复 使用道具 举报
这样写不可以,switch()中的值是一个基本数据类型或者String,ENUM类型的数据,而你写的一个Java语句,很明显会报错,你可以这样写:int i = sc.nextInt();
switch (i){
}
回复 使用道具 举报
你在里边谢了一天语句,你说能不能行
回复 使用道具 举报
来瞅瞅,10楼的链接里有总结
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马