
package scannerex;
import java.util.Scanner;
public class NumAdd {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("두 개의 숫자를 입력해 주세요.(두 수가 모두 0일 경우 종료합니다) : ");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
if (num1 == 0 && num2 == 0) //무한반복을 멈출 명령어
break;
int[] list;
if (num1 > num2) { //작은 수가 num1로 가게 하는 정렬
int temp = num1;
num1 = num2;
num2 = temp;
}
list = new int[num2 - num1 - 1]; //두수 num1, num2를 제외한 사이값 만큼만 배열의 길이가 되어야 한다.
System.out.print(num1 + ", ");
for (int i = 0; i < num2 - num1 - 1; i++) {
list[i] = num1 + i + 1;
System.out.print(list[i] + ", ");
}
System.out.println(num2);
}
}
}

이 문제를 처음 봤을 때는 처음 입력 받은 num1 과 num2 사이를 반복문과 배열로 출력하여 풀겠다고 생각하여 이 코드를 작성하게 되었다.
일단 if(num1 > num2)의 문장을 이용해 무조건 입력 받은 두 수 중 작은 숫자가 num1로 가게 정렬하였다.
그리고 배열의 길이는 입력 받는 정수 num1과 num2의 사이여야하니 큰수(num2) 에서 작은 수(num1)을 빼고 1을 빼면 num1과 num2 사이의 길이가 나온다.
- (num2 - num1 - 1) 가 배열의 길이여야 하는 예시
num1 = 1
num2 = 5
일때 입력 받은 두 정수 사이의 값을 출력해야하니 1, 2, 3, 4, 5 가 되어야 하는데
입력 받은 두 정수를 제외하면 반복문 안 배열이 2, 3, 4 를 출력해야하는 것이다.
그럼 배열의 길이가 3이 되어야하는 것이다.
(num2 -num1 -1) = 5 -1 -1 = 3
- 여기서 부터 답
package scannerex;
import java.util.Scanner;
public class NumAdd2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("첫 번째 수 입력 :");
int num1 = sc.nextInt();
System.out.println("두 번쨰 수 입력 :");
int num2 = sc.nextInt();
if(num1 > num2){
int temp = num1;
num1 = num2;
num2 = temp;
}
System.out.print("두 숫자 사이의 모든 정수 :");
for (int i = num1; i <= num2; i++) {
System.out.print(i);
if(i != num2)
System.out.print(", ");
}
}
}

배열이고 뭐고 for문 안에 num1과 num2를 넣으면 끝이었다.
초창기 i값을 num1 대입해 첫 시작이 num1 이 출력되고 하고 num2가 되기 전까지 증가하다가 num2 값이 되면 종료인 간단한 for문이다.
나는 너무 쉬운 문제를 복잡하게 푼거같다.
그래도 답 안보고 푼게 어디냐 라는 마음을 위안으로 삼아야겠다.
'오류, 기능, 문제해결(JAVA)' 카테고리의 다른 글
| scanner에서 무한 while 중단 조건 간략화 (0) | 2024.12.27 |
|---|---|
| scanner 사용 시 nextInt() 다음에 nextLine() 쓰면 (0) | 2024.12.27 |
| 문자열의 길이 추출 length() / length. length(), size() 차이 (0) | 2024.12.23 |
| 두 수를 나누는데 소수점을 활용해야함 (0) | 2024.12.23 |
| static 문제 연습 중에 (0) | 2024.12.16 |