簡體   English   中英

如何消除代碼重復?

[英]How to eliminate code repetition?

在以下代碼段中,如何減少代碼重復:

  if(motionIOS == 0) 
  {
    if(character == 40)
    {
      previousMotion = character;
    }
      if(previousMotion == 40 && character == 50)
      {
        motionIOSValue = 50;
      }
    else
    {
    previousMotion = character;
    }
  }

  if(motionIOS == 1) 
  {
    if(character == 60)
    {
      previousMotion = character;
    }
      if(previousMotion == 60 && character == 70)
      {
        motionIOSValue = 70;
      }
    else
    {
    previousMotion = character;
    }
  }

本質上,我兩次執行相同的代碼,但是某些事情的值發生了變化。 對於可變數字,我什至甚至需要多次使用此代碼。

我想我應該將其重構為一個函數,但不知道如何。

您可以合並條件檢查。

if(motionIOS == 0 && previousMotion == 40 && character == 50) {
    motionIOSValue = 50;
} else if (motionIOS == 1 && previousMotion == 60 && character == 70){
    motionIOSValue = 70;
} else {
    previousMotion = character;
}

如果需要,可以將條件檢查提取到另一個類。

bool updateIosValue(int previousMotion, int character, int testMotion, int testCharacter){
    //do your custom checks here.
    return previousMotion==testMotion && character== testCharacter;
} 

if(motionIOS==0 && updateIosValue(previousMotion, character, 40, 50){
    motionIOSValue = 50;
}else if(motionIOS==1 && updateIosValue(previousMotion, character, 60, 70){
    motionIOSValue = 70;
}else{
    previousMotion = character;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM