2016-12-03 5 views
0

一連の気象パターンが交互になった後のツリーの高さを予測するハッカーランクアルゴリズムチャレンジを試行しています。なぜ私のロジックが機能していないのか分かりません。 Javaは、私のswitchステートメントのブレークポイントは機能していないと言います。私は完全に以下のコードを貼り付けました。Java:モジュラス演算子を使用するスイッチの到達不能文

import java.util.Scanner; 

public class Main { 

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    int i = scan.nextInt(); // user input how many test cases 
    System.out.println("test cases set."); 
    int[] cycles = new int[i]; 

    for (int x = 0; x < i; x++) { 
     cycles[x] = scan.nextInt(); // user input test cycles 
    } 


    for (int x = 0; x < i; x++) { 
     System.out.println(cycles[x]); 
     int temp = predictor(cycles[x]); 
     System.out.println(temp); 
    } 
} 


public static int predictor(int cycles) { 
    // determines the remainder to find even or odd cycle year 
    int heightRemainder = cycles % 2; 

    switch (heightRemainder) { 
     case 0: 
      System.out.println("Even number"); 
      return cycles; // UNREACHABLE, cycles is a temp variable to check functionality 
      break; 


     case 1: 
      System.out.println("Odd number"); 
      return cycles; // UNREACHABLE, same here 
      break; 
    } 
    return -1; 
    } 
} 
+0

各breakステートメントの直前にreturnステートメントがあります。 break文を実行する方法はありません。 –

+0

プログラムの実行後* return文*それで終了* return文の後のコード*意味がない –

+0

return文が 'switch'で使われるとき、一般に' break'を使う必要はありませんか? @PatriciaShanahanあなたの助けをありがとう! :) – Pahjay

答えて

0

はい、breakステートメントはreturnステートメントの後にあるため、動作制御はbreakステートメントにはなりません。代わりに、予測方法におけるこの

public static int predictor(int cycles) { 
// determines the remainder to find even or odd cycle year 
int heightRemainder = cycles % 2; 
int r=-1; 


switch (heightRemainder) { 
    case 0: 
     System.out.println("Even number"); 
     r =cycles; 
     break; 


    case 1: 
     System.out.println("Odd number"); 
     r=cycles 
     break; 
    } 
    return r; 
    } 
} 
0

ように、サイクルの値を格納し、方法の終了時にその変数を返すために、スイッチケースの使用変数に戻す

:休憩を取り除きます。ステートメント...サイクル値を返すため、デッドコードです

switch (heightRemainder) { 
     case 0: 
      System.out.println("Even number"); 
      return cycles; // UNREACHABLE, cycles is a temp variable to check functionality 
      case 1: 
      System.out.println("Odd number"); 
      return cycles; // UNREACHABLE, same here 
    } 
関連する問題