黑马程序员技术交流社区

标题: 自学基础视频遇到不懂的,请热心的同学帮忙解答,不胜...~ [打印本页]

作者: 佳佳扣子    时间: 2015-3-30 16:32
标题: 自学基础视频遇到不懂的,请热心的同学帮忙解答,不胜...~
在学习基础视频的时候遇到这么一道函数题:需求为:判断两个数是否相同。函数部分已经写好,主函数部分一直不知道该怎么调用,我自己也写了几个语句,运行出的结果总有问题,哪个热心的同学帮忙解答或顺便点评下,非常感谢!: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;       
        }
}


作者: tubao1991    时间: 2015-3-30 17:02
这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9))
作者: 佳佳扣子    时间: 2015-3-30 17:35
tubao1991 发表于 2015-3-30 17:02
这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9)) ...

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

谢谢这位同学详尽的解答,瞬间懂啦~3Q
作者: 马士基    时间: 2015-4-1 18:55
基础还需要继续打牢啊
作者: lmcci    时间: 2015-4-1 21:32
if语句后应该是“m==true” 如果写成"m=true"就是把true赋值给m了。而“m=true”这个语句就是真,所以都会执行if后语句不会执行else里的语句了
作者: showdy    时间: 2015-4-1 22:05
tubao1991 发表于 2015-3-30 17:02
这个你不用再去定义一个boolean 变量接收compare,可以直接用即可,如:if(compare(8,9)) ...

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

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


最好综合这两个理解就跟好了

作者: Sylvanas    时间: 2015-4-3 10:03
m=true是把true赋值给m哦,直接用if(m)就行了啊,
作者: 佳佳扣子    时间: 2015-4-3 20:20
马士基 发表于 2015-4-1 18:55
基础还需要继续打牢啊

恩呢。。
作者: 佳佳扣子    时间: 2015-4-3 20:21
ym199210 发表于 2015-4-1 22:21
你的原代码: boolean m=compare(8,6);
                if(m=true)
建议修改:不用判断m了,因为m就是bo ...

。。谢谢~




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