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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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怎么改啊?

3 个回复

倒序浏览
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-8 10:43
回复 使用道具 举报
不好意思,是b前面加个char,进行类型转换
回复 使用道具 举报
这里涉及到一个类型的自动转换问题?当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);
                }
              
        }
}

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马