One possibility, again dependent upon what you're planning is to reorganize it to nested conditionals
if(a==a1) {
if(b==b2) {
if(c==c3) {
}
else{
}
}
else{
}
}
else {
}
One advantage of the above is you only do each test once.
Another advantage is modifications can made by inserting additional blocks in the nest.
Realize that a block may contain more than one else if you have more than one value you are testing for, but then you ought to consider using a switch for that particular test.
This solution is essentially generic:
Your goals should be a combination of trying to do each test only once and thus building a path to each result and making it flexible, using if() or switch() as appropriate.