나는 다음 코드를 가지고있다. 작동하지만, 왜 작동하는지 이해하지 못한다. 내 머리 속에 있으면 안된다. 보시다시피, 저는 두 개의 배열로 작업하고 있는데, array [i]와 array [j]로 배열의 요소를 '잡아 먹고 있습니다'. 배열 [j]의 경우 첫 번째 if와 두 번째 else 만 테스트합니다. 배열 [i]에 대해서는 두 번째 if, 두 번째 else if 및 마지막 else 만 테스트하려고합니다.if, else if, else C의 제어 흐름 Understaing C에서
작성 방법은 매우 우아하지 않습니다. 이 경우 가장 좋은 방법은 무엇입니까? 또한, 나는 C가 True로 평가되면 else 테스트 조건을 중단 했음에도 불구하고. 이 경우, 코드가 첫 번째 else를 true로 평가할 때 코드가 여전히 작동하는 이유는 무엇입니까? 배열 [i]로 계속 테스트하는 것 같습니다. (이것이 내가 어떻게 작동하길 원하는지, 단지 그것이 작동하는 이유를 모르겠습니다).
for (int i = 0, j = 0; i <= numChars; ++i)
{
int index = j % keyNumChars;
if (isupper(argv[1][index]))
{
// execute code A1
}
else if (islower(argv[1][index]))
{
// execute code A2
}
if (isupper(plainText[i]))
{
// execute code B1
}
else if (islower(plainText[i]))
{
// execute code B2
}
else
{
//execute code B3
}
}
포맷 할 수 있도록 허용 - 당신이 다른 문 뒤에 if 문이 있으므로 상관없이 다른 사람의 결과가있는 경우 다음에 계속됩니다. 두 번째 블록은 if-elseif-else – Andrew
과 처음으로 잘 어울립니다. 논리적 표현의 단축키와 혼동하지 않으시겠습니까? – mvw