2 qwe2016feng qwe2016feng 于 2016.03.31 10:18 提问

if条语句件中,单个条件都为true,可是写在一起却是false,why

f.isbig()判断大于4为true,否则为false

ju[0][0]=2;ju[1][0]=6;ju[2][0]=1;ju[3][0]=7;ju[4][0]=2;ju[5][0]=7;ju[6][0]=8;ju[7][0]=8;ju[8][0]=8;ju[9][0]=8;

if((f.isbig(ju[0][0])==false)&&(f.isbig(ju[1][0])==true)&&(f.isbig(ju[2][0])==false)&&(f.isbig(ju[3][0])==true)&&(f.isbig(ju[4][0])==false)&&
          ( f.isbig(ju[5][0])==true)&&(f.isbig(ju[6][0])==true)&&(f.isbig(ju[7][0])==true)&&(f.isbig(ju[8][0])==true)&&(f.isbig(ju[9][0])==true)){
     System.out.println("r");
}

System.out.println("r");无法执行,为什么??????????

11个回答

ttmice
ttmice   2016.03.31 11:07

把==false和==true去掉,改用!

bdmh
bdmh   Ds   Rxr 2016.03.31 10:21

肯定是有不符合的,你逐个条件去掉,看看是哪个条件不符合

CSDNXIAON
CSDNXIAON   2016.03.31 10:25

第7章、if条件语句
if (false) 代码块中的语句会被编译
if语句在判定后会产生一个值:true or false !
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq423399099
qq423399099   Ds   Rxr 2016.03.31 10:29

建议楼主if之前逐个打印isbig返回的值,我这个试了下是能打印出r的值的,楼主肯定是哪里写错了一个地方,或者直接贴个代码的图

qq_17486399
qq_17486399   2016.03.31 10:54

连在一起有时候会相互影响的。逻辑问题,你需要自己去排除

sl_18500
sl_18500   2016.03.31 11:28

你用Log.i()打印试试看,以前也碰到过System打印不了的情况

bingbingbao2016
bingbingbao2016   2016.03.31 11:31

public static void main(String[] args) {
int ju[][] = new int[10][10];
ju[0][0]=2;ju[1][0]=6;ju[2][0]=1;ju[3][0]=7;ju[4][0]=2;ju[5][0]=7;ju[6][0]=8;ju[7][0]=8;ju[8][0]=8;ju[9][0]=8;
if((isbig(ju[0][0])==false)&&(isbig(ju[1][0])==true)&&(isbig(ju[2][0])==false)&&(isbig(ju[3][0])==true)&&(isbig(ju[4][0])==false)&&
(isbig(ju[5][0])==true)&&(isbig(ju[6][0])==true)&&(isbig(ju[7][0])==true)&&(isbig(ju[8][0])==true)&&(isbig(ju[9][0])==true)){
System.out.println("r");
}
}

private static boolean isbig(int i){
    boolean flag = false;
    if(i > 4){
        flag = true;
    }
    return flag;
}

可以执行出结果:r

herozhangbz
herozhangbz   2016.03.31 11:35

你的f.isbig()已经返回的是bool值了为什么判断的时候用==true?==false?应该改成

     f.isbig(ju[0][0]))&&(f.isbig(ju[1][0]))&&(f.isbig(ju[2][0]))&&(f.isbig(ju[3][0]))&&(f.isbig(ju[4][0]))&&
          ( f.isbig(ju[5][0]))&&(f.isbig(ju[6][0]))&&(f.isbig(ju[7][0]))&&(f.isbig(ju[8][0]))&&(f.isbig(ju[9][0]))){
     System.out.println("r");
 }

有的可以非零为真,所有的真都是一样的?你用==肯定不合适啊,再说人家本来就是布尔值直接就是判断条件不是判断成员

Malloc_New
Malloc_New   2016.03.31 11:37

false的值在编译器中的定义是0,但true的值却不都是1,有时候可能是-1,很显然你的这种写法很不好。

herozhangbz
herozhangbz   2016.03.31 11:45

我测试了一下

    public bool pd(int x)
        {
            if (x > 4)
                return true;
            else
                return false;
        }
    if (pd(4) == true)
                textBox1.Text="true==true";

最后true==true并不成立

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!