2017-02-03 4 views
-5

문제는 사용자가 정수 값 (1에서 4 사이)을 입력하고 입력에 따라 특정 출력이 생성되는 프로그램을 만드는 것입니다.if 선택 문으로 만이 선택 구조를 다시 작성할 수 있습니까?

입력 된 값이 나는 경우와 다른 문을 사용하여 작성하는 관리되지

1 ~ 4 때 그것은 또한 그러나, 나는 그것을 할 수 있는지 알고 싶어하고있어, 사용자에게 오류를 제공해야합니다

if 문만을 사용하여 이것을 작성하십시오.

이 고양이를 피부 할 수있는 방법이 많이있다

If and Else statement

+6

이미지 대신 코드 스 니펫을 추가하는 것이 좋습니다. –

+0

'if (x) {a} else {b}'='if (x) {a} if (! x) {b}'별로 도움이되지 않습니다. 또한, 실제 코드 대신 스크린 샷을 게시하는 것이 매우 게으 름이기 때문에 downvoted가됩니다. – Zong

+0

예, 동일한 검사를 다시 수행하여 'else'문을 피할 수 있습니다. 그러나 비효율적입니다. 또는 성공한 각 명령문에서 플래그 변수를 설정하여 입력이 양호했다는 것을 알릴 수 있습니다. 그런 다음 오류 메시지가이를 확인합니다. –

답변

1

! else 문을 사용하지 않는 것은 그 중 하나입니다. 그러한 제약 조건을 설정하는 것은 불필요한 것으로 보이며 코드를 읽기가 쉽지 않고 실제로 수행하지 않습니다. elseif (! resp_1 == 1 ||...)과 동일합니다. if 문에 resp_1 1 또는 2 또는 3 또는 4와 같았으며 다시 개별적으로 확인하고 텍스트를 인쇄했습니다.

내 제안이 스위치를 사용하는 것, 그것을 구현하기가 읽을 수있는, 그리고 빠른

switch(resp_1){ 
    case(1): /*print*/ break; 
    case(2): /*print*/ break; 
    case(3): /*print*/ break; 
    case(4): /*print*/ break; 
    defualt: /*Print if not 1,2,3,4*/ 
} 
+0

그래, 스위치를 사용하지만 문제는 if 문을 사용하도록 특별히 요구합니다. 어쨌든 고마워! –

+0

나는 if 문을 사용하라는 질문에 resp_1 값의 초기 검사를 제거하기위한 제안을 따르고 else를 원하지 않는다면 그 뒤에있는 아이디어를 사용한다고 주장한다. 이전의 스탐 경우를 부정하는 것 –

1

경우 해야 사용 if 문은, 그럼 그냥 모두 체인.

if  (resp_1 == 1) { 
    // Print output for 1 
} else if (resp_1 == 2) { 
    // Print output for 2 
} else if (resp_1 == 3) { 
    // Print output for 3 
} else if (resp_1 == 4) { 
    // Print output for 4 
} else { 
    // Print error 
} 

if-else 문은 하나의 분기를 (정확히) 실행합니다. 그리고 여기에서는 각 else 브랜치가 다른 if-else 문입니다. 따라서 하나의 브랜치 만 실행됩니다. 유효한 입력을위한 브랜치 중 하나 또는 마지막 catch-all else 브랜치.

깃발을 사용하여 단일 else 절없이이 글을 쓸 수는 있지만, IMO에서는 의도 한 바가 무엇인지 분명하지 않습니다. 코드를 작성할 때 항상 자신의 의도를 가장 잘 포착 할 수있는 옵션을 선택하십시오. 2 주일이 지나면 코드에 설명이 필요하면 먼저 자신에게 설명하는 것이 더 쉬울 것입니다.

+0

+1에 대해 생각해 본 적이 없습니다. –