Я пытаюсь реорганизовать оператор if с несколькими под-условиями. Из моих текущих попыток мне приходится либо дважды записывать условия, либо предполагаемую конечную функцию дважды. Я бы хотел сделать более чистый путь.лучший дизайн для ветвления, если условия подстановки
Вот исходный код я написал:
if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')){ // cipher uppercase letters
bool uppercase = true;
if (s[i] >= 'a' && s[i] <= 'z') { // cipher lowercase letters
bool uppercase = false;
}
printf("%c", cipher_letter(s[i], true, k));
}
else { // do nothing on non-alphabet letters
printf("%c", s[i]);
}
уборщик способ я нашел прямо сейчас это:
if(s[i] >= 'A' && s[i] <= 'Z') { // cipher uppercase letters
printf("%c", cipher_letter(s[i], true, k));
}
else if (s[i] >= 'a' && s[i] <= 'z') { // cipher lowercase letters
printf("%c", cipher_letter(s[i], false, k));
}
else { // do nothing on non-alphabet letters
printf("%c", s[i]);
}
Но тогда я должен повторить функцию cipher_letter.
Что было бы еще лучшим способом уладить это?
Что вы пытаетесь сделать вообще? Возможно, дело не в оптимизации вашего решения, а в поиске полностью нового решения. – Downvoter
@Downvoter Я все для этого. Код работает, я просто ищу лучший стиль, или, как вы говорите, лучшее решение в целом. Во второй версии должно быть ясно, что я делаю. –
Если кто-то спрашивает, правильно ли они решены, я не считаю, что они верят в их решение. Я не знаю, правильно ли ваше решение. Поэтому я был бы признателен, если вы сначала изложите свою проблему, а затем продемонстрируете реализацию. В любом случае, ваш вопрос лучше подходит для [Обзор кода] (https://codereview.stackexchange.com). – Downvoter