繁体   English   中英

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

[英]If statements aren't calling correct Strings or Booleans

好的,所以基本上我有一个客户端,如果按顺序显示了数组的中位数,则在服务器中检查该数组,如果该数组不按顺序,则它会生成“错误消息”,但不显示中位数。 但是,尽管我创建了两个条件,所以它继续处理数组的中值。

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

        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。 <----这不应该在那里!

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...。它不检查..

比较值时使用==

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

尝试==

if(truefalse == false)

=是分配,而不是等价。

现在,您可以切换所有如下所示的语句:

if(truefalse = false)

至:

if(truefalse == false)

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

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

if(truefalse) //shorthand for truefalse is true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM