[day05]

1. 배열 array (java에서 많이 쓰진 않는다. 나중에 나올 배열을 자주 씀. 단 이걸 모르면 나중에 나오는걸 모른다)
1) 같은 타입의 여러 변수를 합쳐놓은 것
2) 데이터 저장 공간 수정/ 변경이 안된다
3) 변수 = 값 1 개 저장, 배열은 값 여러개 저장
4) 선언
타입[] 배열명; int[] score;
타입 배열명[]; int score[];


int [] score ;

int : 배열에 저장될 데이터의 타입 (숫자)
[]  : 배열 선언 (이건 배열이다!)
score: 배열에 대한 레퍼런스(참조- 저장위치 주소) 변수 

선언만으로는 배열의 공간이 할당되지 않으며,
score 라는 레퍼런스 변수만 생성된다.  (stack / heap 메모리)
레퍼런스 변수는 배열공간에 대한 주소값 (레퍼런스값)을 가지며
그 변수 자체가 배열은 아니다.
배열 공간이 생성되지 않았으므로 선언만 할시, 레퍼런스 변수의 초기값은 null 이다.
-> 레퍼런스 : 주소, 레퍼런스변수 : 주소를 저장하는 변수

5) 생성

레퍼런스 변수 = new 타입[방개수];
score = new int[5];
new : 메모리 할당 키워드
int : 배열 타입 : 실제 저장될 데이터의 타입
[5] : 배열 방의 개수

6) 인덱스 index
배열의 방은 0부터 시작하는 방번호가 매겨지며 이를 인덱스라 한다.
인덱스를 이용하여 배열의 각 방에 접근 가능.

score[0] = 10;

7) length
배열의 길이 (방개수)를 알여주는 명령어.

score.length --> 5

8) 배열은 연속되는 숫자를 방 번호로 갖고 있어서 (index)
반복문과 함께 자주 사용된다.

9) 초기화
int [] score = {100, 90, 80, 70 60}; //(줄임)
int [] score = new int[]{100,90, 80 ,70, 60}; //(원형)

중괄호 {}안의 요소 개수를 계산해서 방 크기를 자동으로 만들어주고,
순서대로 값도 대입시켜줌, 
선언과 초기화를 따로 분리시키면 에러!!
int [] score;
score = {1,2,3,4} (x) 에러남

int [] score = {1,2,3,4};  

 

package day05;

public class Test40 {
 public static void main (String[] args) {
	 
	 // 중첩 for 문
	 for( int i= 0 ; i < 3 ; i++ ) {
		 for (int j = 0; j <3 ; j++){
			 System.out.println(i + " "+ j );
		 }
	 }

	/* 
	int a = 0 ;
	
	while(a<3) {
		int b = 0 ;	
		while(b<3) {
		
			System.out.println(a+ " " + b);
			b++;
		}
		a++;
	}
*/	 
	 
 }
}
package day05;

import java.util.Scanner;

public class Test41 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	//문제1. 구구단 2단 출력
		// 출력 형태 
		// 2 * 1 = 2
		// 2 * 2 = 4
		// 2 * 3 = 6
	
	//문제2. 구구단의 단수를 입력받아, 해당 단을 출력
		
	//문제3. 구구단 전체 출력 (2단 ~ 9단)
		
		
	//2단출력
/*		int a =	1 ;
		for (;a<10 ;a++) {

			System.out.println(2 + "*"+ a + "=" + ( 2 * a));
	}
*/
		
/*		
	//	
		Scanner sc = new Scanner (System.in); 
		System.out.println("단수를 입력하세요>>");
		int num = sc.nextInt();
		
		for(int i=1;i<10;i++) {
			System.out.println(num + "*" + i + "=" + ( i * num));
			
		}
		sc.close();
*/		
		
		
		
	
/*		
		 for( int i= 1 ; i < 10 ; i++ ) {
			 System.out.println("\n"+"******"+i+"단******");
			 
			 
			 for (int j = 1; j <10 ; j++){
				 System.out.println(i + "* "+ j + "=" +(i * j) );
			 } 
			
		 }
*/
		
/*		
		// 별찍기 
		for(int a = 0; a<5 ; a++) {
			for(int b = 0; b<=a; b++) {
				System.out.print("*");
			}
			System.out.println();
		}
			
*/
/*		for(int i = 1; i < 7; i+=3) {
	         System.out.println("***" + i + "단***\t***" + (i+1) + "단***\t***" + (i+2) + "단***");
	         for(int j = 1; j < 10; j++) {
	            System.out.print(i + " * " + j + " = " + (i * j) + "\t" );
	            System.out.print((i+1) + " * " + j + " = " + ((i+1) * j) + "\t" );
	            System.out.println((i+2) + " * " + j + " = " + ((i+2) * j) );
	         }
	         
	      }
*/		
		
	  //10번 	
		
		
	}

}
package day05;

public class Test41111 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
/*	 //1번 문제 	
		for(int a = 1; a<=5; a++) {
			System.out.println(a+"행 : ***");
			
			
		}
*/			
			
   //  2번 문제 
/*     for(int a = 0; a <=5; a++ ) {
    	 for(int b = 0; b<=a ; b++  ) {
    	 System.out.print("*");
    	}
    	 System.out.println();
     }
*/     
   // 3번문제   
/*     for(int a = 0; a <=5; a++ ) {
    	 for(int b = 5; b>a; b--) {
    	 System.out.print("*");
    	}
    	 System.out.println();
     }
*/
/*	// 4번문제	
	 for(int a = 0; a <=4; a++ ) {
	    	 for(int b = 1; b<=5 ; b++  ) {
	    	 System.out.print(b+a);
	    	}
	    	 System.out.println();
	     }
*/	     
	     //5번
/*	 for(int a = 0; a <=4; a++ ) {
	    	 for(int b = 5; b<=9 ; b++  ) {
	    	 System.out.print(b-a);
	    	}
	    	 System.out.println();
	     }
 */  
	// 6번
		int star = 1;
		boolean flag = true; // 별이 증가하면 true, 별이 감소해야되면 false 
		for(int a = 0; a < 9 ; a++) {
			for(int b = 0; b<star; b++ ) {
				System.out.print("*");
			}
			if(flag) { //== true)
			
				star++;
			}else {
				star--;
			}
			if(star == 5) {
				flag = false;
			}
			System.out.println();
		}
		
		
		
		
		
/*		  for(int a = 0; a <=4; a++ ) {
		    	 for(int b = 0; b<=a ; b++  ) {
		    	 System.out.print("*");
		    	}
		    	 System.out.println();
		     }
		  for(int a = 0; a <=3; a++ ) {
		    	 for(int b = 4; b>a; b--) {
		    	 System.out.print("*");
		    	}
		    	 System.out.println();
		     }
*/
		
		
		
		
/*		for() {int a = 0;a<5; a++
			for(int b = 5 ;b) {
				System.out.println();
			}
*/			 												// 첫번째 for  a의 길이는 칸수를 결정함  
															// 2번째 	for  
/*		 for(int a = 0; a <=4; a++ ) {			
	    	 for(int b = 5; b>a ; b--  ) {
	    	 System.out.print(" ");
	    	}
	    	 	for(int c = 0; c<a+1; c++) {
	    	 	System.out.print("*");
	    	 	}
	    	 System.out.println();
	     }
	     
	     */
		// for(int a = 0; a <=5; a++ ) {
	    //	 for(int b = 5; b>a; b--) {
	    //	 System.out.print("*");
	    //		}
	    //	 System.out.println();
	    //	 }
		
		// 7번문제
/*	 for(int a = 0; a <=4; a++ ) {			
	    	 for(int b = 5; b>a+1 ; b--  ) {
	    	 System.out.print(" ");
	    	}
	    	 	for(int c = 0; c<a+1; c++) {
	    	 	System.out.print("*");
	    	 	}
	    	 System.out.println();
	     }
	*/	
		 //8번문제
/*	 for(int a = 0; a <=4; a++ ) {   
	          for(int c = 0; c<a; c++) {
	              System.out.print(" ");
	          }
	           for(int b = 5; b>a ; b--  ) {
	           System.out.print("*");
	          }
	              
	              
	           System.out.println();
	 }
*/	
/*		 // 10번  삼각형 문제 
	  for(int a = 1 ; a <= 5 ; a++) {
		 for (int b = 5; b>a ; b--) {
			 System.out.print(" ");
		 	}
		 	for (int c = 0; c<2*a-1 ; c++) {
		 		System.out.print("*");
		 	}
		 	System.out.println();
	  }
	  */
	  	//10번 
/*		for(int a=1; a<=5;a++){
			for(int b=0;b<5-a;b++){
				System.out.print(" "); 
			}
			for(int c=0;c<2*a-1;c++){
				System.out.print("*"); 
			}
			System.out.println();
		
		}
*/
	 //11번
/*		for(int a=1; a<=5;a++){
			for(int b=0;b<a-1;b++){
				System.out.print(" "); 
			}
			for(int c=10;c>2*a-1;c--){
				System.out.print("*"); 
			}
			System.out.println();
		}
	*/
	}
	

}

 

 

package day05;

public class Test42 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 배열  선언
		//int a ;
		int [] score;
		
		// a= 10;
		score = new int [3]; // 방 3개 짜리 만들기
		// 선언 + 할당
		int [] score1 = new int [3]; 
	
		score[0] = 10;
		score[1] = 20;
		score[2] = 30;
		System.out.println(score[0]);
		System.out.println(score[1]);
		System.out.println(score[2]);
		
		// int a = score; 은 안들어감 
		int a = score[0];
		int tot = 0;
		for(int i = 0; i<3; i++) {
			tot += score[i];
		}
		System.out.println(tot);
		System.out.println(score.length);
	}

}

 

 

package day05;

public class Test43 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int [] num = new int [10];
		for(int i = 0; i<10; i++) {
			num[i]= 100;
			System.out.println(num[i]);
		}
		System.out.println("--------------------");
		for(int n: num) {
			System.out.println(n);
		}
				
		// 초기화
		String[] subject = {"java","jsp","spring"};
		
		for(int i = 0; i < subject.length; i++) {
			System.out.println(subject[i]);
		}
		
		System.out.println("--------------------");
	/*	String[] subject = new String[3]; // 
String[0] = java 
		double[] d = new double[3];
		
		
			float [] f = new float[3];
			boolean[] b = new boolean[3];
			
	*/		
		
		// 업그레이드 for 문 (forEach 문)
		for(String a:subject) {
			System.out.println(a);
		}
	}
}

 

 

package day05;

public class Test44 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		
		//레퍼런스 치환
	/*	int [] arr = {1,2,3,4,5};
		int [] myArr = arr;
		for(int i = 0; i < myArr.length; i++) {
			System.out.println(myArr[i]);
			
		
		
		arr = null;
			System.out.println(myArr	[i]);
		}
		
	*/	
		//예제. 최대값, 최소값 구하기
		
/*		int [] score = {79, 59, 36, 98, 25};
		// 최대값
		int max = score [0]; 
		for (int i = 0; i < score.length; i++) {
			if( max< score[i]) {
				max = score[i];
			}
		}
		System.out.println("최대값" + max);
		
		//최소값
		int min = score [0];
		for(int i = 0 ; i < score.length; i++) {
			if(min>score[i]) {
				min = score[i];
			}
		}
		System.out.println("최소값"+ min);
*/
		
		
		//===> 더 간단하게 
				int [] score = {79, 59, 36, 98, 25};
		// 최대값
		int max = score [0]; 
		int min = score [0];
		for (int i = 0; i < score.length; i++) {
			if( max< score[i]) {
				max = score[i];
			}
			if(min>score[i]) {
				min = score[i];
			}
		}
		
		System.out.println(max);
		System.out.println(min);
	}
}

 

 

package day05;

import java.util.Scanner;

public class Test45 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		  // 문제1-1. int형 방 5개 배열을 만들고 10,20,30,40,50 을 저장하고, 출력. 
		                                   //    0  1  2  3  4
	      // 문제1-2. 위 배열을 이용하여, 인덱스번호 1번과 3번안에 있는 데이터를 
	      //         더한 값을 출력해보세요. 
	      // 문제1-3. 인덱스번호를 사용자로부터 입력받고, 
	      //         해당 인덱스의 데이터를 출력해보세요. 
	      // 문제1-4. 배열안의 모든 요소의 총 합을 출력해보세요. 
	      // 문제1-5. 배열안에 있는 값(데이터)중 하나를 입력하면, 
	      //         그 값이 저장된 인덱스 번호를 출력해보세요. 
	      // 문제1-6. 인덱스 번호 2번과 4번의 값을 교환해보세요. 
	      // 문제1-7. (심화) 내림차순으로 정렬해보세요.
		
		// 1번 문제
/*		int [] score = {10, 30, 20, 40, 50};
		for(int i =0; i <score.length;  i++) {
		System.out.println(score[i]);
		}
				
		
		// 2번 문제 
		System.out.println(score[1]+score[3]);
		
		// 3번 문제
		Scanner sc = new Scanner(System.in);
		System.out.println("인덱스를 입력하세요>>");
		int num = sc.nextInt();
		System.out.println(score[num]);
		sc.close();
*/		
/*		//4번 문제
		int tot = 0;
		for(int i =0; i <score.length;  i++) {
			tot += score[i];
		}
*/		//5번 문제
/*		System.out.println(tot);
		Scanner sc = new Scanner(System.in);
		System.out.println("값을 입력하세요>>");
		int val = sc.nextInt();
			for(int i = 0; i < score.length; i++){
				if(val == score[i]){
					System.out.println(i);
					break;
		if(val==score[i]) {
		
		}
*/		//6번 인덱스 번호 2번 4번 교환 
		
//		int [] score = {10, 30, 30, 20, 50};
				//       0  1   2   3    4 

		
		//빈공간 생성
		
		
/*		
		int[] temp = new int[1]
		// int tmp = score[2]
		
		//인덱스 2번을 빈공간으로 잠깐 이동
		temp[0] = score[2];
		//int tmp = score[2];
		System.out.println(temp[0]); //20
		
		//인덱스 4번을 2번으로 이동
		score[2] = score[4];
		System.out.println(score[2]); //4
		
		//다시 temp의 값을 4번으로 이동
		score[4] = temp[0];
		socre[4] = tmp;
		System.out.println(score[4]); //3
		
		for(int i=0; i < score.length; i++) {
			System.out.print(score[i]);// 246315
		}
*/		
		//버블 정렬
		
	/*	
		int [] score = {10, 20,50, 40, 30};
  
		for(int i =0; i <score.length-1;  i++) {
			for(int j = i+1; j <score.length; j++) {
		
				if(score[i]<score[j]) {
				 int tmp = score[i]; 
						score[i]=score[j];
						score[j]=tmp;
		
				
				}
			}
		}
		*/	
		  //선택정렬
			int [] score = {10, 20,50, 40, 30};
			for(int i = 0; i < score.length-1; i++) {
				int max = i; //큰수의 인덱스 번호
					
				for(int j = i+1; j<score.length; j++) {
					if( score[max]>score[j]) {
					max = j;
				}
			
			
			
			}
				int tmp = score[i];
				score[i] = score[max];
				score[max] = tmp;
		
	        // 결과값 출력
	      
	        for (int a : score) {
	            System.out.print(a + "  ");
	        	}
	        System.out.println();
	        
			}
	}
}

'P-Language > [Java]' 카테고리의 다른 글

[Java] 7 - 객체지향  (0) 2022.06.03
[Java] 6 - 다차원 배열  (0) 2022.06.03
[Java] 4 - 조건문(switch), 반복문  (0) 2022.06.03
[Java] 3 - 연산자, 제어문, 조건문  (0) 2022.06.03
[Java] 2 - 변수와 입,출력문  (0) 2022.06.03

+ Recent posts