책 내용 질문하기
자바질문드려도될까요?(조건문 삼항 조건 연산자)
도서
2024 시나공 정보처리산업기사 필기 기본서
페이지
270
조회수
231
작성일
2024-05-14
작성자
김*렬
첨부파일

270페이지 1번

if (a > b)

  max = a;

else if (a <= b)

  max = b;

 

답1번입니다. max = ( a > b) ? a : b;

 max = a;, max = b; 둘이 같아서 max =이 나온다는 뜻인가요? 조건은 참으로 지정을 했는데 자세하게 설명부탁드려도될까요? 

 

2번문제

char cc; 

int dd = 50;

switch(dd)

{ case 50 : cc='x';

 case 30 : cc='y';

 default : cc='z'}

printf("%c", cc);

 

답이 z 3번으로 되어있는데 case문은 마지막 z대입으로 x와y가 누적되는게 아니라 사라지는건가요?  질문드려도될까요?

 

 

276페이지 1번

main(void) {

int i;

int sum =0;

for(i=1; i<=10; i = i+2)

   sum = sum + i;

printf("%d", sum);

}


i = i+2 i증가하고나서 i=1; i<=10; 두개의 연산식도 i가 증가되는건가요? 질문드려도될까요? 

 

 

 

 

답변
2024-05-15 17:42:53

안녕하세요 길벗수험서 운영팀입니다.

 

 

 

270페이지 1번 문제 답변

 

if (a > b)             <----  a가 b보다 크냐?

    max = a;         <----  a가 b보다 클때 max에 a의 값을 저장해라

else if (a <= b)     <----  a가 b보다 작거나 같냐? ( a가 b보다 크지않냐? )

    max = b;         <----  a가 b보다 자거나 같을때 max에 b의 값을 저장해라

 

위 식에서 a가 b보다 클때는 max에 a의 값을 저장하고 크지 않을때는 max에 b의 값을 저장하라는 것입니다.

 

조건연산자 형식을 보면   조건 ? 참: 거짓;  이렇게 되니

 

조건에서 a가 b보다 크냐?  이렇게 물어보면 될것이고

 

일때 a 가, 거짓일때 b가 나오도록   (a > b) ? a : b;  이렇게 쓰면 되고

 

조건 연산자에서 나온 결과를 max에 저장을 해야하니  max = (a > b) ? a : b;  이렇게 식을 쓰면 됩니다.

 

 

 

 

270페이지 2번 문제 답변 

 

변수의 개념이 아직 안잡히신것 같네요

 

변수는 1가지 값만 가질 수 있고, 기존에 뭔가 값을 가지고 있었다면 그값은 없어집니다.

 

a = 1

a = 2

a = 3

 

이렇게 3개의 코드를 실행한다면 a의 최종값은 3입니다.

 

1가지 값만 가질수 있기 때문에 마지막에 3을 대입했기 때문에 3을 기억하고 있습니다.

 

 

 

 

 

276페이지 1번 문제 답변

 

해당 코드에서 사용되는 i라는 변수는 1개 입니다.

 

i라는 변수의 값이 계속 변합니다.

 

for(i=1; i<=10; i = i+2)


반복문에서 i라는 변수는 초기값 1부터 시작해서 i값이 2씩 증가하면서 i가 10보다 작거나 같은 동안 계속 반복이 됩니다.

i의 값이 처음에 1로 시작하여 아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 3이 됩니다

아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 5이 됩니다

아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 7이 됩니다

아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 9이 됩니다

아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 11이 되는데 

이때 최종값을 비교해보면 거짓이 되기 때문에 더이상 반복하지 않고 for문을 빠져 나갑니다.


열심히 공부하셔서 합격하시길 기원하겠습니다.  

 

행복한 하루되세요 :)

  • 관리자
    2024-05-15 17:42:53

    안녕하세요 길벗수험서 운영팀입니다.

     

     

     

    270페이지 1번 문제 답변

     

    if (a > b)             <----  a가 b보다 크냐?

        max = a;         <----  a가 b보다 클때 max에 a의 값을 저장해라

    else if (a <= b)     <----  a가 b보다 작거나 같냐? ( a가 b보다 크지않냐? )

        max = b;         <----  a가 b보다 자거나 같을때 max에 b의 값을 저장해라

     

    위 식에서 a가 b보다 클때는 max에 a의 값을 저장하고 크지 않을때는 max에 b의 값을 저장하라는 것입니다.

     

    조건연산자 형식을 보면   조건 ? 참: 거짓;  이렇게 되니

     

    조건에서 a가 b보다 크냐?  이렇게 물어보면 될것이고

     

    일때 a 가, 거짓일때 b가 나오도록   (a > b) ? a : b;  이렇게 쓰면 되고

     

    조건 연산자에서 나온 결과를 max에 저장을 해야하니  max = (a > b) ? a : b;  이렇게 식을 쓰면 됩니다.

     

     

     

     

    270페이지 2번 문제 답변 

     

    변수의 개념이 아직 안잡히신것 같네요

     

    변수는 1가지 값만 가질 수 있고, 기존에 뭔가 값을 가지고 있었다면 그값은 없어집니다.

     

    a = 1

    a = 2

    a = 3

     

    이렇게 3개의 코드를 실행한다면 a의 최종값은 3입니다.

     

    1가지 값만 가질수 있기 때문에 마지막에 3을 대입했기 때문에 3을 기억하고 있습니다.

     

     

     

     

     

    276페이지 1번 문제 답변

     

    해당 코드에서 사용되는 i라는 변수는 1개 입니다.

     

    i라는 변수의 값이 계속 변합니다.

     

    for(i=1; i<=10; i = i+2)


    반복문에서 i라는 변수는 초기값 1부터 시작해서 i값이 2씩 증가하면서 i가 10보다 작거나 같은 동안 계속 반복이 됩니다.

    i의 값이 처음에 1로 시작하여 아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 3이 됩니다

    아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 5이 됩니다

    아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 7이 됩니다

    아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 9이 됩니다

    아래 코드들을 실행하고 다시 반복하러 for문으로 찾아오면 i = i + 2 를 해서 i의 값이 11이 되는데 

    이때 최종값을 비교해보면 거짓이 되기 때문에 더이상 반복하지 않고 for문을 빠져 나갑니다.


    열심히 공부하셔서 합격하시길 기원하겠습니다.  

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.