아래가 문제 (주어진 코드)
나의 답
처음부터 혼자서 차근차근 풀어보려고 했으나 강사님이 이 문제는 같이 푼다고 하면서 코드작성과 설명이 시작… 내가 쓰던 코드 지우고 따라가려니 이해보다는 정신없이 따라 쓰기 바빴다.
days 계산식을 좀 더 짧게 쓸 수 있을 것 같아서 쉬는 시간에도 혼자 이리 저리 해보았으나 찾지 못했다.
다행히도 그 다음 수업사간에 배운 switch문을 활용해 좀 더 간결하게 줄이는 방법을 배웠다.
삼항 연산자 - (조건)? T일 때 값 : F일 때 값
간단한 if-else를 대신할 수 있는 간단한 명령
점수가 70점 이상이면 합격, 아니면 불합격을 출력
맨 아래의 한 줄과 바로 위 2줄(if문)은 같은 내용이다.
경우의 수가 나누는 기준이 되고 관계연산식이 비교적 단순 비교일 때 사용한다.
>, <, >=, <=아니고 주로 ==일 때 사용
switch는 if와 비슷한 구조이지만, 변수값의 단순 참조에 의해 경우의 수가 분리된다.
Switch문 break;가 없으면 true가 되는 case에서 쭉~ 끝까지 실행되어 버린다.
Switch문을 사용할 때 주의 해야 할 부분이지만 이 특성을을 이용해서 요일 계산 코드를 짧고 간결하게 바꿀 수 있다.
tdays는 앞에서 했던 days계산을 간단하게 해보았다.
(변수명을 바꾸다가 잘못 바꿔버렸다. d를 대문자로 썼어야 했는데)
for명령 : 반복 실행 명령
for( ; ; ) { 반복 실행 할 코드 }
괄호 ( ) 안에는 반복의 횟수를 조절할 수 있는 문구를 ‘;’로 구분
그리고 그 조절한 횟수만큼 { }안의 내용을 반복 실행
for 선언
for ( 변수의 최초값; 반복 조건식; 변수의 증감량 ) { 반복 실행할 코드 }
구구단의 단을 입력 받아서 구구단을 출력하기
2를 입력받으면 2X1=1부터 2X9=18 출력되도록
주어진 코드
나의 답
출력 결과 (분홍색 글자는 사용자가 입력한 숫자)
출력할 단을 입력하세요 (2~9 중에 하나를 선택) : 8
[ 8단 ]
8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
굳이 sum이라는 변수를 만들 필요가 없었다 괜히 코드만 길어짐
입력 받은 숫자의 팩터리얼 계산 후 출력
예시
6을 입력했다면 (아래 두 줄처럼 출력이 되도록 만들기)
6! = 720
6! = 1x2x3x4x5x6 = 720
주어진 코드
내가 쓴 답
출력 결과 (분홍글씨는 입력받은 데이터)
팩터리얼을 입력하세요 : 8
8! = 40320
8! = 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 = 40320
처음에 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 이렇게 출력이 되어서
1을 앞으로 빼고 2부터 for문을 실행시켰다.
X의 위치도 i 앞으로 옮겨서 수정 했더니 예쁘게 출력
강사님이 내 코드를 보고 한 조언 뒤에 숫자를 없애도 된다.
1 ~7까지 for문을 하고 ⇒ i<k가 되겠고,
뒤에 8을 붙여도 될 듯 ⇒ .printf("%d = %d",k, fact);