겉바속촉
temp순서바꾸기 본문
728x90
반응형
안녕하세요~ 겉바속촉입니다!^^!
이번에는 temp에 대해서 배워볼게요?!
순서를 바꾼다고 생각하시면 됩니다
아래와 같이 코드를 작성해주시구요!!
그 다음의 그림을 봐주세요:)
package day0529;
public class ArraySort_08 {
public static void main(String[] args) {
int a = 20, b = 10;
System.out.println("a="+a+" ,b="+b);
//순서바꾸기....빈그릇에 해당하는 temp 필요
int temp = a;
a=b;
b=temp;
System.out.println("a="+a+" ,b="+b);
}
}
1. temp라는 빈공간에 a를 넣어줍니다 ---> int temp = a;
2. a가 빠져나왔기 때문에 그곳에 b를 넣어줍니다 ---> a=b;
3. b가 빠져나왔기 때문에 빈공간이 되어버린 그 곳이 바로 temp ---> b = temp;
컴파일 해보시면 다음과 같은 콘솔창이 보이실 거에요!!
처음 : a = 20, b = 10
temp 후 : a = 10, b = 20
이번에는 3개짜리 배열을 만들어서 바꿔봅시다.
0번과 2번을 바꿔볼까요?
//3개의 배열 순서바꾸기
int []arr= {5,7,2};
//foreach로 출력
for(int n:arr) //n에다가 arr를 담는다
{
System.out.println(n);
}
System.out.println();
System.out.println("0번과 2번을 교환후 출력");
int temp1 = arr[0];
arr[0]=arr[2];
arr[2]=temp1;
//순번바꾸어 출력
for(int n1:arr)
{
System.out.println(n1+" ");
}
순서는 0번을 temp1에 넣고
비어있는 0번에 2번을 넣습니다.
그렇다면 2번이 temp1이 되는 거에요:)
로또번호
package day0529;
public class LottoRandomSort_10 {
public static void main(String[] args) {
//로또번호 6개 배열생성
int []lotto = new int[6];
//생성된 로또개수만큼 반복
for(int i=0;i<lotto.length;i++)
{
//1~46번까지의 난수를 발생
lotto[i] = (int)(Math.random()*45 +1);
//증복체크
for(int j=0;j<i;j++)
{
//조건 은 같은 숫자가 나오면
if(lotto[i]==lotto[j])
{
i--; //같은 번지에 다시 값을 구하기 위해서
break; //i++로 이동
}
}
}
//오름차순정렬
for(int i=0;i<lotto.length-1;i++)
{
for(int j=i+1;j<lotto.length;j++)
{
if(lotto[i]>lotto[j])
{
int temp=lotto[i];
lotto[i]=lotto[j];
lotto[j]=temp;
}
}
}
for(int i=0;i<lotto.length;i++)
{
System.out.print(lotto[i] + "\t" );
}
}
}
순서바꾸기 연습
package day0529;
public class ArraySort_09 {
public static void main(String[] args) {
//여러개의 배열의 순서를 정렬하기
int []arr = {55,7,9,1,11,45,66,88,43};
System.out.println("원데이터 가로로 출력");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("데이터 거꾸로 출력하기");
for(int i=0; i<arr.length/2;i++)
{
int temp=arr[i];
//10개일때 0번과 9번을 바꾸는 것
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
//출력
for(int i=0; i<arr.length;i++)
{
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("데이터 오름차순 출력하기");
//기준데이터: 0번부터 끝에서 2번째까지
for(int i=0;i<arr.length-1;i++)
{
//비교하는 데이터는 기준 다음값부터 끝까지
for(int j=i+1; j<arr.length;j++)
{
//조건문
if(arr[i]>arr[j]) //바꿀조건
{
//바꿔주는 공식
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
//출력
for(int i=0; i<arr.length;i++)
{
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
728x90
반응형