java请编写程序,分别定义8种基本数据类型的变量,并打印变量的值。

为什么输出的是总和,而不是单个的换行的8行输出

public static void main(String[] args) {
        byte a =100;
        short b=12345;
        int c= 654321;
        long d =123456789;
        float e =1.5f;
        double f =123.456;
        boolean g =false;
        char h ='a';
        System.out.println(a+'\n'
                +b+'\n'+c+'\n'+d+'\n'
                +e+'\n'+f+'\n'+String.valueOf(g)+
                '\n'+h);
    }
  • 对于 a + '\n''\n' 是一个字符,其 ASCII 值为 10。所以 a + '\n' 实际上是将 byte 类型的 a 的值和字符 '\n' 的 ASCII 值相加,得到一个整数结果。后续的操作以此类推,会将不同类型的数据(如 bc 等)不断与前面的结果相加,最终形成一个总和,而不是将它们作为单独的元素进行字符串拼接。

修改方案

  • 将 System.out.println() 中的内容修改为使用字符串拼接的方式,将每个变量都作为字符串的一部分,中间用 "\n" 分隔,这样能确保每个变量都单独输出在新的一行。
    public class Main {
        public static void main(String[] args) {
            byte a = 100;
            short b = 12345;
            int c = 654321;
            long d = 123456789;
            float e = 1.5f;
            double f = 123.456;
            boolean g = false;
            char h = 'a';
            // 使用字符串拼接,将变量的值和换行符一起作为字符串输出
            System.out.println(a + "\n" + b + "\n" + c + "\n" + d + "\n" + e + "\n" + f + "\n" + g + "\n" + h);
        }
    }
    public class Main {
        public static void main(String[] args) {
            byte a = 100;
            short b = 12345;
            int c = 654321;
            long d = 123456789;
            float e = 1.5f;
            double f = 123.456;
            boolean g = false;
            char h = 'a';
            // 使用 String.format 方法格式化输出字符串
            System.out.println(String.format("%d\n%d\n%d\n%d\n%f\n%f\n%s\n%c", a, b, c, d, e, f, g, h));
        }
    }

    更简洁的代码,可以使用 String.format() 方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值