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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在学习基础视频的时候遇到这么一道函数题:需求为:判断两个数是否相同。函数部分已经写好,主函数部分一直不知道该怎么调用,我自己也写了几个语句,运行出的结果总有问题,哪个热心的同学帮忙解答或顺便点评下,非常感谢!:loveliness:我自己写的代码如下:
class Function2
{
        public static void main(String[] args)
        {
                 boolean m=compare(8,6);  //这个部分一直不知道该怎么表达,不明白函数返回的结果如果是布尔型的话怎么调用呢?
                if(m=true)
                System.out.println("这两个数相等");
                else
                System.out.println("这两个数不相等");       
        }
        public static boolean compare(int x,int y)
        {
                return x==y;       
        }
}

14 个回复

倒序浏览
这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9))
回复 使用道具 举报
tubao1991 发表于 2015-3-30 17:02
这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9)) ...

谢谢,非常感谢~:loveliness:
回复 使用道具 举报
主函数应该这样写:compare(8,6);if(m)System.out.println("相等"); System.out.println(不等);
回复 使用道具 举报
好,我补充一下吧,可能你这块还不是很熟悉,“=”是赋值号,它的作用是把“true”这个值赋给了“m”,也就是说,不管你上面函数返回了什么值,你都把它改变成“true”了,所以if会一直成立,如果你想比较两个值应该用“==“号,但你的m本身就是boolean类型的值,而if接收的就是boolean类型的值,所以你可以直接把m放到if里面,像这样“if(m)”,因为你的“m”里面的boolean就是你的函数返回的,所以直接把函数放到if里面有同样的效果
回复 使用道具 举报 2 0
JarryHorse 发表于 2015-3-30 18:56
好,我补充一下吧,可能你这块还不是很熟悉,“=”是赋值号,它的作用是把“true”这个值赋给了“m”,也就 ...

谢谢这位同学详尽的解答,瞬间懂啦~3Q

点评

不客气  发表于 2015-3-30 21:20
回复 使用道具 举报
基础还需要继续打牢啊
回复 使用道具 举报
if语句后应该是“m==true” 如果写成"m=true"就是把true赋值给m了。而“m=true”这个语句就是真,所以都会执行if后语句不会执行else里的语句了
回复 使用道具 举报
tubao1991 发表于 2015-3-30 17:02
这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9)) ...

通透,好理解
回复 使用道具 举报
你的原代码: boolean m=compare(8,6);
                if(m=true)
建议修改:不用判断m了,因为m就是boolean类型,直接
                      if(m){
                 ........
}
                    else{
                   .....................
}
回复 使用道具 举报
分析的
好,我补充一下吧,可能你这块还不是很熟悉,“=”是赋值号,它的作用是把“true”这个值赋给了“m”,也就是说,不管你上面函数返回了什么值,你都把它改变成“true”了,所以if会一直成立,如果你想比较两个值应该用“==“号,但你的m本身就是boolean类型的值,而if接收的就是boolean类型的值,所以你可以直接把m放到if里面,像这样“if(m)”,因为你的“m”里面的boolean就是你的函数返回的,所以直接把函数放到if里面有同样的效果

这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9))
蛮好的


最好综合这两个理解就跟好了
回复 使用道具 举报
m=true是把true赋值给m哦,直接用if(m)就行了啊,
回复 使用道具 举报
马士基 发表于 2015-4-1 18:55
基础还需要继续打牢啊

恩呢。。
回复 使用道具 举报
ym199210 发表于 2015-4-1 22:21
你的原代码: boolean m=compare(8,6);
                if(m=true)
建议修改:不用判断m了,因为m就是bo ...

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