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");无法执行,为什么??????????
肯定是有不符合的,你逐个条件去掉,看看是哪个条件不符合
建议楼主if之前逐个打印isbig返回的值,我这个试了下是能打印出r的值的,楼主肯定是哪里写错了一个地方,或者直接贴个代码的图
连在一起有时候会相互影响的。逻辑问题,你需要自己去排除
把==false和==true去掉,改用!
你用Log.i()打印试试看,以前也碰到过System打印不了的情况
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
你的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");
}
有的可以非零为真,所有的真都是一样的?你用==肯定不合适啊,再说人家本来就是布尔值直接就是判断条件不是判断成员
false的值在编译器中的定义是0,但true的值却不都是1,有时候可能是-1,很显然你的这种写法很不好。
我测试了一下
public bool pd(int x)
{
if (x > 4)
return true;
else
return false;
}
if (pd(4) == true)
textBox1.Text="true==true";
最后true==true并不成立
好吧我逗逼了粗心了把4换成5,测试true==true是可以的,false==false也是可以的,不过感觉怪怪的。你完全可以if(true)或者if(!false)搞得这么复杂