黑马程序员技术交流社区

标题: 编的九九乘法表的程序,运行的结果为什么会是这样呢?... [打印本页]

作者: 唐侠君    时间: 2013-12-10 11:48
标题: 编的九九乘法表的程序,运行的结果为什么会是这样呢?...
本帖最后由 唐侠君 于 2013-12-10 22:22 编辑

package com.itheima;

public class Test5 {
    public static void main(String args[]){
   
     for(int x=1;x<=9;x++){
             for(int y=1;y<=x;y++){
                     System.out.print(y+'*'+x+'='+y*x+'\t');
            
     }

     System.out.println();
}
    }
}


运行结果:
115
117120
119123127
121126131136
123129135141147
125132139146153160
127135143151159167175
129138147156165174183192
131141151161171181191201211


作者: 747437484    时间: 2013-12-10 11:52
把单引号改成双引号就可以了
作者: 唐侠君    时间: 2013-12-10 11:58
747437484 发表于 2013-12-10 11:52
把单引号改成双引号就可以了

有什么区别吗,有的时候单引和双引都可以呀??
作者: zzkang0206    时间: 2013-12-10 12:28
双引号才是连接字符的符号
作者: 唐侠君    时间: 2013-12-10 12:43
zzkang0206 发表于 2013-12-10 12:28
双引号才是连接字符的符号

这与 * 所表达的意思有关吗?之前做的一个图形的题(倒三角和正三角的)用*来表示的,那时单引和双引的结果是一样的呀?
作者: 唐侠君    时间: 2013-12-10 12:45
唐侠君 发表于 2013-12-10 12:43
这与 * 所表达的意思有关吗?之前做的一个图形的题(倒三角和正三角的)用*来表示的,那时单引和双引的结 ...

是因为加号(+)的原因吗??
作者: 唐侠君    时间: 2013-12-10 12:46
唐侠君 发表于 2013-12-10 12:43
这与 * 所表达的意思有关吗?之前做的一个图形的题(倒三角和正三角的)用*来表示的,那时单引和双引的结 ...

是因为加号(+)的原因吗

作者: 情祭    时间: 2013-12-10 13:01
//九九乘法表
public class Text3 {

        public static void main(String[] args) {
                for(int i=1;i<=9;i++){
                        for(int j=1;j<=i;j++){
                                System.out.print(j+"*"+i+"="+i*j+"\t");
                        }
                        System.out.println();
        }

       
        }

}

运行结果:
1*1=1       
1*2=2        2*2=4       
1*3=3        2*3=6        3*3=9       
1*4=4        2*4=8        3*4=12        4*4=16       
1*5=5        2*5=10        3*5=15        4*5=20        5*5=25       
1*6=6        2*6=12        3*6=18        4*6=24        5*6=30        6*6=36       
1*7=7        2*7=14        3*7=21        4*7=28        5*7=35        6*7=42        7*7=49       
1*8=8        2*8=16        3*8=24        4*8=32        5*8=40        6*8=48        7*8=56        8*8=64       
1*9=9        2*9=18        3*9=27        4*9=36        5*9=45        6*9=54        7*9=63        8*9=72        9*9=81       


单引号引的数据 是char类型的,双引号引的数据 是String类型的,单引号只能引一个字符,而双引号可以引0个及其以上。


作者: 唐侠君    时间: 2013-12-10 13:13
嘿嘿,明白了,在输出语句中,有加号(+)的,用双引号加号的作用是连接字符串的,用单引号加号的作用是做加减法的,而且是int型和char型的强制类型转换,所以才出现全是数字的运行结果,谢谢大家的参与,让我终于想明白了!{:soso_e112:}
作者: 走遍世界找寻你    时间: 2013-12-10 14:43
class Demo2  {            public static void main(String args[]){                                          for(int x=1;x<=9;x++){                              for(int y=1;y<=x;y++){                                     // System.out.print(y+'*'+x+'='+y*x+'\t');把这一行的单引号改为双引号如下                                      System.out.print(y+"*"+x+"="+y*x+"\t");                                                    }                       System.out.println();                 }                     } }
作者: 走遍世界找寻你    时间: 2013-12-10 14:44
class Demo2
{
           public static void main(String args[]){
                  
                     for(int x=1;x<=9;x++){
                             for(int y=1;y<=x;y++){
                                    // System.out.print(y+'*'+x+'='+y*x+'\t');把这一行的单引号改为双引号如下
                                     System.out.print(y+"*"+x+"="+y*x+"\t");
                             
                     }

                     System.out.println();
                }
                    }
}
作者: time_out    时间: 2013-12-10 16:02
System.out.print(y+'*'+x+'='+y*x+'\t');这里应该使用双引号来表示字符串且用“+”完成字符串的拼接;而楼主使用的单引号('') ,则表示char类型的字符,然后会自动转型为int类型和y、x等做加法操作,就输出了楼主发的那个比较奇怪的结果。
注意:只有表达式中包含一个字符串的时候,加好("+")才会被重载!
作者: 硬件之家    时间: 2013-12-10 16:53
  1. package com.itheima;

  2. public class Test5 {
  3. public static void main(String[] args) {
  4.      for(int x=1;x<=9;x++){
  5.            for(int y=1;y<=x;y++){
  6.                 System.out.print(y+"X"+x+"="+y*x+" ");
  7.            }
  8.                 System.out.println();
  9.       }
  10.     }
  11. }

复制代码


作者: 李洋-    时间: 2013-12-10 21:40
System.out.print(y+'*'+x+'='+y*x+'\t');你输出有误,你应该用字符串连接上,而不是用字符




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