2015-11-03 46 views
1

我有這個if-else語句需要一個二維數組作爲參數,並檢查它是否null或空的,我試圖將其轉換爲一個switch語句,因爲我要插入一個break線開關。的if-else在Java中

public static void method (int[][]matrix, int x){ 
    if (matrix == null){ // Matrix is an int[][] 
       System.out.println("It's NULL"); 
          // I want to insert a break line here 
      } else if (matrix.length == 0){ // Checks if it is empty 
       System.out.println("Empty array"); 
          // I want to insert a break line here 
      } else { 
        // Calculates other things if it's not NULL or empty 
       } 
} 

我試圖做switch(matrix)但是Eclipse顯示一條消息,指出它不能int[][]類型的值進行切換。

+2

總是發佈確切的錯誤消息。什麼是確切的信息? –

+1

你是什麼意思?「我想在這裏插入一個'break'這行?」 'if'不知何故無法正常工作?它可以做任何你可以用'switch'(然後一些)做的事情。 – Thilo

+0

爲什麼你想打破那裏?如果第一個條件爲真,則不會檢查其他條件。 – Carcigenicate

回答

3

沒錯。

Java中的switch不會執行「複雜」對象(或花哨的條件和模式匹配),只是原語,枚舉和字符串。

你必須堅持你的if聲明(反正這也不算太壞)。

+0

你有什麼想法,我怎麼能阻止我的代碼後,它檢查了一些東西?我不能使用'break',因爲它不是'switch'語句,因爲我處於'void'方法中,所以'return'不是'返回' – Rods2292

+1

你也可以從'void'方法返回''''。僅僅是一個「回報」(無價值)。 'else'類型的'switch'中有'break'的作用。有了'else',你就不會陷入下一個「案例」。 – Thilo

+0

現在我明白了!謝謝 – Rods2292