2014-03-06 55 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语句 的立即封闭方法或初始化程序;这个声明,即 叫做中断目标,然后立即正常结束。

这就是您要找的答案吗?