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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张雪磊 于 2012-7-7 20:22 编辑

新手,刚看到毕老师的视频day3,即将讲到“判断两个数是否相同”,自己想动手试试,胡写了一下,想知道怎么错的,谢谢
  1. /*
  2. 需求:判断两个数是否相同
  3. */
  4. class  FunTest
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 System.out.println(pdxt(3,4));

  9.         }

  10.         public static char pdxt(int a,int b)
  11.         {
  12.                 if(a==b)
  13.                 {
  14.                         return "两个数相同";
  15.                 }
  16.                 else
  17.                 {
  18.                         return "不同";
  19.                 }
  20.         }
  21. }
复制代码
报错
FunTest.java:16: 错误: 不兼容的类型
                        return "两个数相同";
                               ^
  需要: char
  找到:    String
FunTest.java:20: 错误: 不兼容的类型
                        return "不同";
                               ^
  需要: char
  找到:    String
2 个错误

7 个回复

倒序浏览
本帖最后由 邵阳 于 2012-7-7 16:50 编辑

/*
需求:判断两个数是否相同
*/
class  FunTest
{
        public static void main(String[] args)
        {
                System.out.println(pdxt(3,4));

        }

        public static char pdxt(int a,int b)//  改成string
        {
                if(a==b)
                {
                        return "两个数相同";
                }
                else
                {
                        return "不同";
                }
        }
}
//因为char是字符型数据类型,而你返回的是字符串。肯定会出现不兼容的现象

再给你说个小细节:
字符型类型char,一般是用两个单引号
'  '示。
而字符串String,一般是用两个双引号
"  "表示。
都是在英文状态下

评分

参与人数 1技术分 +1 收起 理由
黑马张扬 + 1

查看全部评分

回复 使用道具 举报
返回值


package day7_7;

/*
需求:判断两个数是否相同
*/
class  FunTest
{
        public static void main(String[] args)
        {
                System.out.println(pdxt(3,4));

        }

        public static String  pdxt(int a,int b)
        {
                if(a==b)
                {
                        return "两个数相同";
                }
                else
                {
                        return "不同";
                }
        }
}
回复 使用道具 举报
char的范围是两个字节,也就是一个中文字,你的"两个数相同"和"不同"都超出了char的范围,所以无法编译,你可以将char改成string或者定义boolean型用true和false来表示"两个数相同"和"不同"。

回复 使用道具 举报
第12行:char改为String,char是字符型数据类型,而返回的是字符串,肯定会出现不兼容的现象。
字符型类型char,一般是用两个英文下的单引号'  '表示。
而字符串String,一般是用两个英文下的双引号"  "表示。
回复 使用道具 举报
/*
需求:判断两个数是否相同
*/
class  FunTest
{
        public static void main(String[] args)
        {
                System.out.println(pdxt(3,4));

        }

        public static String pdxt(int a,int b) //返回的是一个字符串,你定义函数的时候也要一个接收字符串类型的类
        {
                if(a==b)
                {
                        return "两个数相同";
                }
                else
                {
                        return "不同";
                }
        }
}
回复 使用道具 举报
本帖最后由 朱东方 于 2012-7-7 17:30 编辑
  1. class FunTest
  2. {
  3. public static void main(String[] args)
  4. {
  5. System.out.println(pdxt(3,4));

  6. }

  7. /*
  8. public static char pdxt(int a,int b) <FONT color=red> //你定义的返回值类型为char,但是return后面的“两个数相同”却是字符串。类型不符</FONT>。
  9. {
  10. if(a==b)
  11. {
  12. return '同';  <FONT color=red>//如果换成单引号的话,就变成了字符型了。
  13.                   //但是char只能存储两个字节即一个中文字。所以编译一样通过不了。
  14.                    //换成一个字,'同' 这样就ok了。
  15.                   //注:这个编译可以通过。
  16. </FONT>}
  17. else
  18. {
  19. return '异';
  20. }
  21. }
  22. */
  23. public static String pdxt(int a,int b)  <FONT color=red>//如果把这个返回值类型改成字符串就ok了</FONT>。
  24. {
  25. if(a==b)
  26. {
  27. return "两个数相同";  <FONT color=red>//" "代表字符串。' '这个代表字符型</FONT>。
  28. }
  29. else
  30. {
  31. return "不同";
  32. }
  33. }

  34. }

  35. /*
  36. <FONT color=red>知识点:
  37. 1.字符型常量和字符串型常量的表达方式。
  38. 2.定义函数式 返回值 一定要 保持一致。
  39. 3.char只能存储2个字节,而一个中文字占2个字节。</FONT>
  40. */
复制代码
回复 使用道具 举报
本帖最后由 陈冲 于 2012-7-7 17:59 编辑
  1.     /*
  2.     需求:判断两个数是否相同
  3.     */
  4.     class  FunTest
  5.     {
  6.             public static void main(String[] args)
  7.             {
  8.                     System.out.println(pdxt(3,4));
  9.             }
  10.            public static char pdxt(int a,int b)//此处定义的函数范围类型是char型
  11.             {
  12.                     if(a==b)
  13.                     {
  14.                           return "两个数相同";//而此处和下面的返回值是string类型
  15.                     }
  16.                     else
  17.                     {
  18.                           return "不同";//使用单引号' '表示的是字符型(char),而使用" "表示的是字符串型(string)
  19.                     }
  20.             }
  21.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马