How to reorganize the following codes

I have a method to reorganize, and some dummy codes, as shown below:

if(deletedInfo.isEmpty() && addedInfo.isEmpty()) {
    // some logic codes
} else if (!deletedInfo.isEmpty() && addedInfo.isEmpty()) {
    // some logic codes
} else if (deletedInfo.isEmpty() && !addedInfo.isEmpty()) {
    // some logic codes
} else if(!deletedInfo.isEmpty() && !addedInfo.isEmpty()) {
    // some logic codes
}

Is there a suitable template or algorithm for reorganizing these codes?

Thank.

+3
source share
3 answers
if (deletedInfo.isEmpty()) {

    if (addedInfo.isEmpty()) {
        // some logic codes
    } else {
        // some logic codes
    }

} else {

    if (addedInfo.isEmpty()) {
        // some logic codes
    } else {
        // some logic codes
    }

}
+4
source

You can reorganize this code:

int val = 0;
if (deletedInfo.isEmpty()) val |= 0x1;
if (addedInfo.isEmpty()) val |= 0x2;

switch (val) {
    case 0: // some logic codes
    case 1: // some logic codes
    case 2: // some logic codes
    case 3: // some logic codes
}
+2
source

There are several ways to do this. Here is one:

if (a) {
  if (b) {
    // do J
  } else {
    // do K
  }
} else {
  if (b) {
    // do L
  } else {
    // do M
  }
}

You may prefer something more like a truth table, especially if you have more than two tests to combine:

int switcher = 0;
if (a) switcher|=1;
if (b) switcher|=2;
switch(switcher) {
  case 0:
    // do J
    break;
  case 1:
    // do K
    break;
  case 2:
    // do L
    break;
  case 3:
    // do M
    break;
}

I don’t think there is an automatic β€œright” way - you need to choose what is the most clear for your situation.

0
source

All Articles