如果语句没有调用正确的字符串或布尔值

时间:2013-12-19 04:55:17

标签: java arrays string boolean

好的,基本上我有一个客户端显示数组的中位数,如果它是有序的 这在服务器中检查, 如果数组不是有序的,那么它会产生“错误消息”而不是中位数。 但它继续处理数组中值的值虽然我创建了两个条件,只有IF(boolean = true然后显示中位数)

以下是我正在讨论的部分的客户'

        double median = Server.getMedian(array);

        Boolean truefalse = Server.checkFalse(array);
        // prints the response if the array is in order or not
        String response = Server.errorMsg(array);
        System.out.println(truefalse);
        if(truefalse = false){
            System.out.println(response);
        }
        else if(truefalse = true){
            System.out.println(response);
            System.out.println("The median of the array is " + median + ".");
        }
    }}
'

以下是服务器的方法。  if((array [i + 1]< array [i])||((array [i + 1]> array [i]&&(array [0]> array [9]))) ){ 上面的这一行检查升序和降序'

 public static String errorMsg(int[] array){
            String checker = "Error, the numbers are not in order";
            for(int i =0; i<array.length-1; i++){
                if( (array[i+1] < array[i]) || ((array[i+1] > array[i] && (array[1] > array[9]))) ){
                    return checker;
                }
            }
            return "The numbers are in order!";  
        }



        public static Boolean checkFalse(int[] array){
            for(int i =0; i<array.length-1; i++){
 if( (array[i+1] < array[i]) || ((array[i+1] > array[i] && (array[1] > array[9]))) ){
                    return false;
                }
            }
            return true;  
        }



    public static double getMedian(int[] array){
        double median;
        if (array.length%2 == 0){
    median = ((double)(array[(array.length/2)-1] + (double)array[array.length/2])/2);
        }
        else{
            median = (array[(array.length/2)-1]);
        }
        return median;
    }
'

这是我从Java获得的回复

错误,数字不按顺序

阵列的中位数是5.5。 &lt; ----这不应该在那里!

3 个答案:

答案 0 :(得分:1)

if(truefalse = false){
            System.out.println(response);
        }
        else if(truefalse = true){
            System.out.println(response);
            System.out.println("The median of the array is " + median + ".");
        }

错了......使用

if(trueFalse)  //bad way of naming a boolean variable BTW

'='将值false / true赋给truefalse ...它没有检查..

答案 1 :(得分:0)

比较值时使用

==

= 是赋值运算符,而不是比较运算符。

尝试==

if(truefalse == false)

答案 2 :(得分:0)

=是赋值,而不是等价。

现在,您可以切换所有类似的语句:

if(truefalse = false)

为:

if(truefalse == false)

......但我会提出一个更好的方法。既然你已经有了某种布尔值,为什么不直接使用呢?

if(!truefalse)  //shorthand for truefalse is false

if(truefalse) //shorthand for truefalse is true