2014-03-06 92 views
0

我會寫從以下元代碼的代碼,在我需要:基於測試 情況下SENSOR_MODE - 斷開關,並繼續while循環 - 繼續下一個caseAndroid Java開關案例...是否正確?

我不知道這是否是做

 while(running){ 
     performTask1(); 
     .... 
     performTask2(); 
     .... 
     switch(mode) { 
     case SENSOR_MODE: 
      // no 0 in interpolationValidators 
       // are all interpolatedValues ready ? 
        // calculate orientation 
        // record interpolatedSensorData into LogFile 
        break; // break ... next while loop 
       // waiting for more data to interpolate 
        // modify interpolationValidators for missing sensors set to 0 
        // add validated data + zero to cache 
        // should continue next case CACHE MODE 
     case CACHE_MODE: 
      // some O in interpolationValidators 
       // add 10ms to waiting time for missing sensors 
       // if wait time >= max (30ms) 
        // copy last value from sensor queue into all waiting interpolations for sensor 
       // check cache buffer - are some interpolated data completed for all sensors 
        // if ready 
         // modify interpolationValidators for completed sensors - reset to 1 
         // calculate orientation 
         // record interpolatedSensorData into LogFile 
         // remove ready data from cache 
      break; // 
     } 
    } // end running thread 
+0

如果在switch語句之後沒有什麼東西(在while循環結束之前),那麼斷開開關將繼續while循環的下一次迭代。但我有點困惑。除了有條件中斷的情況外,你是否真的希望SENSOR_MODE進入CACHE_MODE狀態? –

+0

是的,沒錯,我真的很想要它.. – erwin

回答

0

break聲明隻影響內部塊或循環(你的情況switch)的正確途徑。任何外部塊或環都不受影響(在你的情況下while)。也Java Language Specification, § 14.15參見:

break聲明無標籤試圖控制轉移到最內層 包圍switchwhiledo,或for語句 的立即封閉方法或初始化程序;這個聲明,即 叫做中斷目標,然後立即正常結束。

這就是您要找的答案嗎?