为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Char不会打印,而计数器超出了我的循环;

为什么Char不会打印,而计数器超出了我的循环;

白衣染霜花 2019-04-24 18:15:24
我试图运行这三个同时的线程,但是当我做system.print Char不会出来,并且计数器“我”超过了绑定。不知何故,我在Char前面添加一个字符串,它打印出来正确,任何人都可以向我解释为什么会发生这种情况?    public class Part2 {     public static void main(String[] args) {                     Runnable printA = new PrintChar('a');         Runnable printB = new PrintChar('b');         Runnable printC = new PrintChar('c');         Thread t1 = new Thread(printA);         Thread t2 = new Thread(printB);         Thread t3 = new Thread(printC);         t1.start();         t2.start();         t3.start();          }     private static class PrintChar implements Runnable {          private char c;         public PrintChar(char c) {             this.c = c;         }         public void run()          {              for(int i = 1; i<=100; i++) {                 System.out.print(c + i + ", ");             }         }      }      }/ *这是此代码的输出:98,100,101,102,103,104,105,99,99,...... 198,* // *如果我在Char之前添加一个String,就像这样这是我期望的输出; * /        public void run()          {              for(int i = 1; i<=100; i++) {                 System.out.print("" + c + i + ", ");             }         }/ * b1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,.... a1~a100 b1~b100和c1~c100同时运行和完成* /
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

+在a char和a上使用运算符时int,它会执行算术加法,而不是字符串连接。把"" +第一意味着你首先做的"" + c,这是串联成一个String,然后补充说,String到一个int,这是另一种串联。


查看完整回答
反对 回复 2019-05-15
?
米脂

TA贡献1836条经验 获得超3个赞

+运算符在Java中有两个含义。它可以代表:

  • 另外如果两个操作数都是数字类型,并且char被认为是数字类型,因为在内部它的值是表示Unicode表中字符位置的数字,因为'a'它将是97(十进制或61为十六进制)。

  • 级联如果至少一个操作数是字符串。

此外,评价从左到右c + i + ", "相当于(c + i) + ", "。在(c + i)这两个ci数字类型,以便+代表此外,计算'a'+1其中,'a'如前面提到的被视为97,所以你看到的结果97+1是98。

在下一个操作之后,98  + ", "这里第二个操作数是String,所以这里+表示连接。所以98 + ", "结果是String "98, "


如果"" + c + i + ", "因为从左到右的评价顺序我们可以表达为(("" + c) + i) + ", "

  • 首先("" + c)会“计算”,因为第一个操作数是String +表示连接,所以我们最终"" +'a'得到String中的结果"a"

  • "a" + i执行Next ,此处第一个操作数的类型为String,因此+也表示串联的结果"a1"

  • 最后"a1" + ", "被执行了。这两个操作数都是字符串,因此+是连接,这导致"a1, "字符串。


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 419 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信