Today I Learned
Scanner sc = new Scanner(System.in);
//갯수 결정
System.out.println("정렬하기 원하는 숫자의 갯수를 입력하세요 : ");
int num = sc.nextInt();
int [] array = new int[num];
//숫자 입력
for(int i = 0; i < array.length; i++) {
System.out.println( (i+1) + "번째 숫자를 입력하세요 : ");
int iNum = sc.nextInt();
array[i]= iNum; //입력받은 숫자를 배열에 넣기
}
//오름차순,내림차순 결정
System.out.println("오름차순 정렬을 원한다면 1을, 내림차순 정렬을 원하다면 2를 입력하세요 :");
int upDown = sc.nextInt();
if(upDown == 1) { //오름차순 정렬
int temp1; //잠깐 값을 저장해둘 임의 변수 설정
for(int i = 0; i < array.length; i++) {
for(int j = i+1; j < array.length; j++) {
if(array[i] > array[j]) {
temp1 = array[i];
array[i] = array[j];
array[j] = temp1;
//저장해둔 array[i]값을 array[j]에 넣기
}
}
}
System.out.println(Arrays.toString(array));
} else { //내림차순 정렬
int temp2;
for(int i = 0; i < array.length; i++) {
for(int j = i+1; j < array.length; j++) {
if(array[i] < array[j]) {
temp2 = array[i];
array[i] = array[j];
array[j] = temp2;
}
}
}
System.out.println(Arrays.toString(array)); //배열 출력
}
정렬 부분 if문은 강사님께서 정렬방법에 대해 알려주신부분을 사용하였고 전체적인 흐름은 직접 짰다.
if문 정렬과정에서 temp변수에 잠시 값을 하나 저장해두고 서로 바꾸는 흐름만 이해한다면 그리 어렵지 않은 듯 하다.
1. 배열에 들어갈 값의 갯수 입력받기
2. 배열에 들어갈 값을 하나씩 입력받기
3. 오름차순/내림차순 어떤 방식으로 정렬할지 선택 입력받기
4. 선택받은 방식으로 정렬하기
'오늘공부한것' 카테고리의 다른 글
[TIL_Java] 반복제어문 continue, break 사용 (0) | 2021.12.18 |
---|---|
[TIL_Java] 파일 입출력 (FileReader, FileWriter, BufferReader, BufferWriter, try-catch) (0) | 2021.12.13 |
[TIL_Java] 10진수 <=> 2진수, 8진수, 16진수 변환하기 (0) | 2021.12.09 |
[TIL_Java] For문, If문, 배열을 사용해서 원하는 값 출력하기 (0) | 2021.12.08 |
[TIL_Java] 값을 입력받고 연산 처리하기 (스캐너, 몫, 나머지) (0) | 2021.12.08 |