黑马程序员技术交流社区

标题: 一个小代码,得不到自己要的结果(新手求教) [打印本页]

作者: 系磊    时间: 2012-8-7 17:57
标题: 一个小代码,得不到自己要的结果(新手求教)
class syf
{
        public static void main(String[] args)
        {
                int a = 9,b,c;
                b = (a>10?100:'A');
                c = (a>1?100:'C');
       
                System.out.println("b="+b+";c="+c);
        }
}
运行结果是b=65,;c=100
我想要b=A;c=100怎么改啊?

作者: 李祖庆    时间: 2012-8-7 18:26
class syf
{
        public static void main(String[] args)
        {
                int a = 9,b,c;
                b = (a>10?100:'A');
                c = (a>1?100:'C');
      
                System.out.println("b="+(char)b+";c="+c);
        }
}

b前面借个char,进行类型转换
作者: 李祖庆    时间: 2012-8-7 18:27
不好意思,是b前面加个char,进行类型转换
作者: 官文昌    时间: 2012-8-7 19:32
这里涉及到一个类型的自动转换问题?当char类型和int类型的数据进行运算时,char类型会自动转换成int类型,楼上的代码其实只是治标了,没治本,我万一要是a=11,要输出b=100,输出就变成了一个b=d了,所以你这里就不要用三目运算符了:

代码修改:
public class Test
{
        public static void main(String[] args)
        {
                int a = 8;
                int b;
                int c;
                if(a>10)
                {
                        b=100;
                        System.out.println("b="+b);
                }
                else
                {
                        b='A';
                        System.out.println("b="+(char)b);
                }
                if(a>5)
                {
                        c=100;
                        System.out.println("c="+c);
                }
                else
                {
                        c='C';
                        System.out.println("c="+(char)b);
                }
              
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2