我需要找到最佳解決方案(主要是復雜性/速度,而不是關于可讀性或 RAM 分配)來執(zhí)行不同操作(例如函數(shù)調用)的自定義序列,只要條件為真。如果它變?yōu)榧伲覀儽仨毻V剐蛄?。這是一個解決方案,例如:/*This function starts when "condition = true", andmust stop running when "condition = false"*/public void sequence(){ //Every function has a duration lower than a milisecond function_a(); if( condition = false ) return; function_b(); /*-------------------------------- same pattern * 20 (approximation) ---------------------------------*/ if( condition = false ) return; function_z(); //END of the sequence}另一個比前一個更具可讀性的例子:public void sequence_switch(){ int currentStep = 0; do{ switch(currentStep){ case 0: function_a(); break; case 1: function_b(); break; /*-------------------------------- same pattern * 20 (approximation) ---------------------------------*/ case 2: function_z(); break; } currentStep ++; }while( condition = true );}我一直在考慮異常,但在某些情況下它們會使程序變慢,也許這里不是這種情況?更多信息:此序列大部分時間 (95%) 要么在前 5 個操作執(zhí)行時停止,要么到達終點。(想象一個機械臂要在不同的點移動一個物體,如果它沒有正確抓住物體它會很快掉下來,所以下面的所有操作都不應該執(zhí)行)一旦條件為假,立即停止序列是至關重要的。編輯:歡迎使用其他解決方案,但真正的答案是在效率方面進行比較。這個循環(huán)的完美情況類似于游戲中的宏:條件可能是“持有一把鑰匙”,如果你沒有在正確的時間使用這個復雜的宏,你想取消它(你不希望程序繼續(xù)此序列,您希望恢復對鼠標/鍵盤的完全控制)。但如果它開始得很好,你就會堅持到最后,除非在極少數(shù)情況下。
當條件為真時,從頭開始執(zhí)行各種操作序列
慕運維8079593
2022-11-30 13:22:29