ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java :: 예제 프로그램, 1차원 배열 기초
    IT/Java & JSP & FW 2011. 12. 13. 12:56
    가위,바위,보 게임 여러가지 방법
    import java.io.*;
    public class day07_game {
    	public static void main(String[] args) 
    	throws IOException{
    		
    		while(true){
    			System.out.println("------------------");
    			System.out.println("1.가위 2.바위 3.보 4.종료");
    			System.out.println("------------------");
    			System.out.print("입력");
    			
    			int user=System.in.read()-48;
    			System.in.skip(2);
    			if(user==4){
    				System.out.println("게임을 종료합니다");
    				System.exit(0);
    			}
    			
    			int com=(int)(Math.random()*3+1);
    			System.out.println("사용자:"+user);
    			System.out.println("컴퓨터:"+com);
    			
    			//1. 9개의 경우의 수를 전부 대입하는 알고리즘
    			if(user==1){
    				if(com==1){
    					System.out.println("비겼습니다.");
    				}else if(com==2){
    					System.out.println("컴퓨터 승!");
    				}else if(com==3){
    					System.out.println("사용자 승!");
    				}
    			}else if(user==2){
    				if(com==1){
    					System.out.println("사용자 승!");
    				}else if(com==2){
    					System.out.println("비겼습니다.");
    				}else if(com==3){
    					System.out.println("컴퓨터 승!");
    				}
    			}else if(user==3){
    				if(com==1){
    					System.out.println("컴퓨터 승!");
    				}else if(com==2){
    					System.out.println("사용자 승!");
    				}else if(com==3){
    					System.out.println("비겼습니다.");
    				}
    			}
    			
    			//2. 5개의 경우의 수를 만드는 경우
    			switch(user-com){
    			case -2:System.out.println("사용자 승!");break;
    			case -1:System.out.println("컴퓨터 승!");break;
    			case 0:System.out.println("비겼음");break;
    			case 1:System.out.println("사용자 승!");break;
    			case 2:System.out.println("컴퓨터 승!");
    			}
    			
    			//3. 규칙을 이용해서 구현하는 방법
    			if(user==com){
    				System.out.println("비겼음");
    			}else if((user+1)%3==com%3){
    				System.out.println("컴퓨터 승!");
    			}else if(user%3==(com+1)%3){
    				System.out.println("사용자 승!");
    			}
    		}
    	}
    }
    


    1차원 배열

    - 선언하기
    자료형 배열명[];
    자료형 []배열명;

    - 메모리생성
    배열명=new 자료형[개수];

    - 초기화하기
    배열명[인덱스]=값;

    - 스왑기능
    두 배열을 바꿀 때 사용하는 기능 밑에 소스 예제 참조
    public class day07_test {
    	public static void main(String[] args) {
    		
    		//1. 선언하기 (구청신고)
    		int arr[];  //[]를 넣어 배열임을 확인시킴
    		
    		//2. 메모리생성 (건물 짓기)
    		arr=new int[3];
    		
    		//3. 초기화(입주)
    		arr[0]=10;
    		arr[1]=20;
    		arr[2]=30;
    		
    		//데이터 불러오기
    		System.out.println("arr[1]="+arr[1]);
    		System.out.println("arr의 크기:"+arr.length);  //length를 사용해 배열의 크기를 확인할 수 있다.
    		
    		//1+2 선언과 생성 동시에 하기
    		double arr2[]=new double[5];
    		
    		System.out.println("arr2[4]="+arr2[4]);
    		//System.out.println("arr2[5]="+arr2[5]); <잘못된문구 배열은 0부터 시작하고 있음을 기억해야 한다.
    		System.out.println("arr2의 크기:"+arr2.length);
    		
    		//1+2+3 선언과 생성과 초기화를 한 번에 하기
    		int c[]={10,20,30,40,50,60};
    		//int c[]=new int[6];  위와 같음.
    		int num=c.length;  //c.length 를 한 번 불러서 변수로 저장해서 한 번만 호출하게 함
    		for(int i=0;i<num;i++){  //for문의로 출력  i와 num을 비교해서 출력함
    			System.out.println("c["+i+"]="+c[i]);
    		}
    		
    		c=new int[3];  //이름이 같은 변수에 배열을 다시 선언해서 새롭게 함
    		System.out.println("*********************");
    		for(int i=0;i<c.length;i++){  
    			System.out.println("c["+i+"]="+c[i]);
    		}
    		
    		int d[]=new int[7];
    		System.out.println("---------------------");
    		for(int i=0;i<d.length;i++){  
    			System.out.println("d["+i+"]="+d[i]);
    		}
    		
    		//기본적인 스왑 공식 출력해보면 데이터의 크기가 c와 d가 바뀜을 알 수 있다. 주소를 바꾸기 때문이다.
    		int temp[];
    		temp=c;
    		c=d;
    		d=temp;
    		
    		System.out.println("*********************");
    		for(int i=0;i<c.length;i++){  
    			System.out.println("c["+i+"]="+c[i]);
    		}
    		System.out.println("---------------------");
    		for(int i=0;i<d.length;i++){  
    			System.out.println("d["+i+"]="+d[i]);
    		}
    		
    	}
    }
    


    배열 주의 사항
    <예제> 
    public class day07_test {
    	public static void main(String[] args) {
    		
    		//1+2+3 선언과 생성과 초기화를 한 번에 하기
    		int c[]={10,20,30,40,50,60};
    		//int c[]=new int[6];  위와 같음.
    		System.out.println("*********************");
    		for(int i=0;i<c.length;i++){  
    			System.out.println("c["+i+"]="+c[i]);
    		}
    		
    		int d[]=c;  //c의 주소값을 d 변수에 전달.
    		System.out.println("*********************");
    		for(int i=0;i<d.length;i++){  
    			System.out.println("d["+i+"]="+d[i]);
    		}
    		
    		d[3]=1004;  //d변수 [3]배열 주소 값에 1004를 입력
    		System.out.println("*********************");
    		for(int i=0;i<d.length;i++){  
    			System.out.println("d["+i+"]="+d[i]);
    		}
    		
    		System.out.println("*********************");
    		for(int i=0;i<d.length;i++){  
    			System.out.println("c["+i+"]="+d[i]);
    		}
    		//출력해 보면 주소값이 같기 때문에 c[3]은 d[3]과 같은 값을 가지게 된다.
    	}
    }
    
    


    10개의 값을 입력 받고 최대값 평균 합산 오름차순으로 정렬해 결과 보여주는 프로그램
    import java.io.*;
    public class day07_last {
    	public static void main(String[] args) 
    	throws IOException{
    		BufferedReader in=
    				new BufferedReader(new InputStreamReader(System.in));
    		
    		int max=0, avg=0, sum=0;  //변수에 초기값을 집어 넣는다.
    		
    		int arr[]=new int[10];  //배열에 10개의 공간을 만든다.
    		
    		System.out.println("10개의 값을 입력해주세요.");
    		for(int i=0;i<arr.length;i++){
    			System.out.print((i+1)+"번째 값:");
    			arr[i]=Integer.parseInt(in.readLine());
    			sum+=arr[i]; //총점
    			if(max<arr[i]){ //최대값 찾기. 비교후 가장 높은 값을 max에 넣는다.
    				max=arr[i];
    			}
    		}
    		
    		avg=sum/arr.length;  //평균 도출
    		
    		System.out.println("**********************************");
    		System.out.println("Result");
    		System.out.println("합산:"+sum+"/평균:"+avg+"/최대값:"+max);
    		
    		for(int i=0;i<arr.length;i++){  //원래 배열에 들어 있는 값을 그대로 출력함.
    			System.out.print(arr[i]+"  ");
    		}
    		
    		for(int i=0;i<arr.length-1;i++){  //selection sort(오름차순) 기능 구현
    			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;
    				}
    			}
    		}
    		
    		System.out.println("\n======================================");
    		for(int i=0;i<arr.length;i++){
    			System.out.print(arr[i]+"  ");
    		}
    	}
    
    }
    

Designed by Tistory.