일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코딩테스트
- 컴퓨터비전
- 파이썬라이브러리
- 데이터분석
- 컴퓨터구조
- 정수와유리수
- 중학1-1
- 혼공머신
- SQL
- pandas
- JSP/Servlet
- numpy/pandas
- 텍스트마이닝
- 자바
- CNN
- 연습문제
- 파이썬
- 자바 실습
- html/css
- 딥러닝
- 영어공부
- 정보처리기사필기
- 머신러닝
- CSS
- 데이터입출력구현
- 중학수학
- 데이터베이스
- 정보처리기사실기
- C++
- 운영체제
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
반복문과 배열 그리고 예외 처리 24 - 연습문제 실습편 풀어보기 1 : 1~5번 문제 본문
이제 실습문제를 풀어보려고 한다. 1번문제부터 도전해보자! 어려운 문제도 많겠지만 한 문제 한 문제 풀면서 많은 것들을 배우고 있다.
그럼 시작해보자!
연습문제 실습편 풀어보기
문제 1번
다음 물음에 답하여라.
(1) 무엇을 계산하는 코드이며 실행 결과 출력되는 내용은?
(2) 위의 코드를 main() 메소드로 만들고 whileTest 클래스로 완성하기
(3) for 문을 이용하여 ForTest 클래스 작성하기
(4) do-while 문을 이용하여 DoWhileTest 클래스 작성하기
1-2번 문제
1-2번 문제
1-3번 문제
이렇게 해서 3가지 유형으로 문제를 모두 풀어보았다. 이제 이 반복문을 사용하는 것도 별로 어렵지 않다.
2번 문제
다음 2차원 배열 n을 출력하는 프로그램 작성하기
int n [][] = { {1}, {1, 2, 3}, {1}, {1, 2, 3, 4}, {1, 2} };
이렇게 2차원 배열이 잘 출력되고 있다. 이 문제도 모두 혼자서 풀었다.
문제 3번
정수를 입력 받고 *를 출력하는 프로그램 작성하기
아래로 내려가며 커지는
원래는 커지면서 내려가는 계단인데 잘못 쓴 코드이다. 그래도 이 코드와 차이점을 알기 위해 기록으로 남기기로 했다.
아래로 내려가며 작아지는
이렇게 잘 출력이 되고 있다. 이제 작게 줄이는 방법도 알게 되었다.
문제 4번
소문자 알파벳을 하나 입력 받고 다음과 같이 출력하는 프로그램 작성하기
문자를 어떻게 숫자로 바꾸어서 출력하는지 모르겠고 안 되는 부분이 많았다.
다시 풀어보기
문제가 상당히 어려웠다. 특히 char 형과 아스키코드에 대해서 잘 모르면 풀 수 없는 문제였다. 예외 처리도 잘 되고 있다. 별 찍기 문제와 유사하지만 난이도는 굉장히 어려웠다.
문제 5번
양의 정수 10개를 입력 받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램 작성하기
3의 배수가 한 개만 담기고 있다. 이 문제는 어떻게 해결할 수 있을까?
다시 풀어보기
3의 배수가 없을 때의 상황도 조건으로 넣어주었다. 책의 정답에는 이 부분이 많이 빠져있어서 내가 따로 연구하며 코드를 이처럼 작성해보았다. 훨씬 더 마음에 든다. 코드는 상황을 구체화시킬 때 더 좋다는 걸 언젠가 들은 적이 있다.
내가 좀 이해가 되지 않았던 부분이 있는데 그걸 기록해보려고 한다.
왜 배열을 입력할 때 numbers가 아닌 numbers[i]로 하는지?
배열은 동일한 자료형을 갖는 데이터가 연속적으로 저장된 자료구조이다. 각 데이터는 배열의 인덱스를 통해 접근할 수 있다. 배열의 인덱스는 0부터 시작하며, numbers[i]는 배열 numbers의 i번째 위치에 접근한다.
numbers[0] = 5; // 첫 번째 요소에 5 저장
numbers[1] = 10; // 두 번째 요소에 10 저장
위 코드에서 numbers[0]은 배열의 첫 번째 요소에 접근하고, numbers[1]은 두 번째 요소에 접근한다. 배열의 각 요소에 값을 저장할 때, 인덱스를 이용해 배열의 특정 위치에 값을 할당할 수 있다.
for (int i = 0; i < 10; i++) {
numbers[i] = sc.nextInt(); // 사용자가 입력한 값을 i번째 요소에 저장
}
이 반복문에서 i는 0부터 9까지 변하며, numbers[i]는 numbers 배열의 각 위치에 차례대로 접근한다. 이 과정에서 사용자 입력값을 받아 배열의 각 인덱스에 저장하게 된다.
- numbers: 배열 전체를 의미
- numbers[i]: 배열에서 i번째 위치에 있는 특정 요소를 의미
만약 numbers라고만 쓰면 배열 전체를 나타내므로, 특정 위치에 값을 저장하거나 값을 가져오기 위해서는 numbers[i]처럼 인덱스를 지정해야 한다.
학습을 마치고
문제가 정말 많아서 이 연습문제는 3개로 나누어서 포스트를 작성하는 것이 좋을 것 같다. 5문제를 풀었는데도 기록할 것이 많아서 학습일지가 많이 길어지고 있다. 6번 문제부터는 다음 포스트에 이어서 작성해보려고 한다.
'프로그래밍 언어 > 자바' 카테고리의 다른 글
반복문과 배열 그리고 예외 처리 26 - 연습문제 실습편 풀어보기 3 : 11~13번 문제 (0) | 2024.08.15 |
---|---|
반복문과 배열 그리고 예외 처리 25 - 연습문제 실습편 풀어보기 2 : 6~10번 문제 (0) | 2024.08.15 |
반복문과 배열 그리고 예외 처리 23 - 연습문제 이론편 풀어보기 2 : 8~14번 문제 (0) | 2024.08.14 |
반복문과 배열 그리고 예외 처리 22 - 연습문제 이론편 풀어보기 1 : 1~7번 문제 (0) | 2024.08.14 |
반복문과 배열 그리고 예외 처리 21 - 카드 맞추기 게임 실습 (0) | 2024.08.14 |