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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史政法 中级黑马   /  2013-3-22 20:49  /  2625 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 史政法 于 2013-3-23 21:17 编辑
  1. switch语句:

  2. int a=4,b =2;

  3. char ch = '+';

  4. switch(ch)        //switch语句里接收的不是一个表达式吗?为什么直接写char cha = '/' 却不行呢?
复制代码

15 个回复

倒序浏览
,,,,,后面的代码怎么挂了?
  1. {
  2.         case '-':       
  3.                 System.out.println(a-b);
  4.         break;               
  5.         case '+':
  6.                 System.out.println(a+b);
  7.         break;
  8.         case '*':
  9.                 System.out.println(a*b);
  10.         break;
  11.         case '/':
  12.                 System.out.println(a/b);
  13.         break;
  14.         default:
  15.                 System.out.println("feifa");
  16. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
                                        switch格式
                       
                        switch(常量值){
                               
                                case 值1:语句;break;
                                case 值2:语句;break;
                                case 值3:语句;break;       
                                .
                                .
                                case 值n:语句;break;
                                default:语句;break;
                        }

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
以上代码没有发现什么语句问题
switch ( 变量 ) 这一行里,变量只能是整型或字符型!
回复 使用道具 举报
正确答案

class Demo{
        public static void main(String [] args){

int a=4,b =2;

char ch = '+';

  switch(ch)
   {
        case '-':        
                System.out.println(a-b);
        break;               
        case '+':
                System.out.println(a+b);
        break;
        case '*':
                System.out.println(a*b);
        break;
        case '/':
                System.out.println(a/b);
        break;
        default:
                System.out.println("feifa");
}
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
switch 括号里面接的是 byte short int char 四种数据类型

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
代码没有问题,测试通过。但是如果直接写成 switch(char cha = '/')的话,你case的是哪一个变量呢?
想要在switch后的括号中写表达式对某个变量操作,就得先在外面声明才行,代码如下:
char ch=' ';
switch (ch = '/')

要搞清楚哦

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
switch()中写的是byte short ,char和int,实际上是int的值,byte short ,char都可以类型转换成int,所以没问题,
其中还可以放枚举类型的,枚举类型的可以和switch结合使用
  1. public class EnumTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int a = 4, b = 2;
  6.                 Operation ope = Operation.ADD;
  7.                 calculate(a, b, ope);
  8.         }

  9.         public static void calculate(int a, int b, Operation ope)
  10.         {
  11.                 switch (ope)
  12.                 {
  13.                         case SUB:
  14.                                 System.out.println(a - b);
  15.                                 break;
  16.                         case ADD:
  17.                                 System.out.println(a + b);
  18.                                 break;
  19.                         case MUL:
  20.                                 System.out.println(a * b);
  21.                                 break;
  22.                         case DIV:
  23.                                 System.out.println(a / b);
  24.                                 break;
  25.                         default:
  26.                                 System.out.println("feifa");
  27.                 }
  28.         }
  29. }

  30. enum Operation
  31. {
  32.         ADD, SUB, MUL, DIV
  33. }
复制代码
回复 使用道具 举报
李贤威 发表于 2013-3-22 21:08
switch格式
                       
                        switch(常量值){

我是在看毕老的PPT文档里,写的是switch()括号里,接收的是表达式,就写了个表达式进去,难道毕老大意写错了?
回复 使用道具 举报
strawberry2013 发表于 2013-3-22 21:10
以上代码没有发现什么语句问题
switch ( 变量 ) 这一行里,变量只能是整型或字符型! ...

我是在看毕老的PPT文档里,写的是switch()括号里,接收的是表达式,就写了个表达式进去,难道毕老大意写错了?
回复 使用道具 举报
刘海陆 发表于 2013-3-22 22:15
switch 括号里面接的是 byte short int char 四种数据类型

我是在看毕老的PPT文档里,写的是switch()括号里,接收的是表达式,就写了个表达式进去,难道毕老大意写错了?
回复 使用道具 举报
系统管理员 发表于 2013-3-23 08:50
switch()中写的是byte short ,char和int,实际上是int的值,byte short ,char都可以类型转换成int,所 ...

这哥们好高端,枚举都引出来了。。。。
我是在看毕老的PPT文档里,写的是switch()括号里,接收的是表达式,就写了个表达式进去,难道毕老大意写错了?
回复 使用道具 举报
史政法 发表于 2013-3-23 12:32
我是在看毕老的PPT文档里,写的是switch()括号里,接收的是表达式,就写了个表达式进去,难道毕老大意写 ...

只要表达式的值是以上的四种数据类型就可以。我的理解。
回复 使用道具 举报
史政法 发表于 2013-3-23 12:33
这哥们好高端,枚举都引出来了。。。。
我是在看毕老的PPT文档里,写的是switch()括号里,接收的是表达式 ...

枚举可以和enum结合使用啊,
回复 使用道具 举报
系统管理员 发表于 2013-3-23 15:09
枚举可以和enum结合使用啊,

我是说你研究的好深啊,,,,,,另外枚举我知道,enum是啥?
回复 使用道具 举报
史政法 发表于 2013-3-23 21:16
我是说你研究的好深啊,,,,,,另外枚举我知道,enum是啥?

不好意思啊,那该是switch的,敲错拉,见谅
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马