java 4차

KHLee·2023년 2월 28일

자바수업

목록 보기
4/46

break out;

package whilecontrol;

public class P99 {

	public static void main(String[] args) {
		
		myfor:
		for (int i = 2; i < 10; i++) {
			System.out.printf("%d 단 \n", i);
			for (int j = 1; j < 10; j++) {
				System.out.printf("%d * %d = %d \t", i, j, (i * j));
				if ((i * j) == 21) {
					break myfor;//myfor:로 되어있는 for문을 모두 빠져나오겠습니다.
				}
			}
			System.out.println("");
		}
	}
}

배열

  • 동일한 자료형만 묶을 수 있다.
  • 사이즈를 정해놓고 사용해야 한다.
  • 고객의 정보를 담아야 하는 경우 사용이 어려움. 가변성이 떨어지기 때문.
  • 자주 사용하지 않음?
  • new 키워드 : 'heap메모리에 넣어라'의 의미
package array;

public class P102 {

	public static void main(String[] args) {
		//int arr[] = new int[];//사이즈가 정해저 있지 않다. arr가 초기화되어있지 않다는 오류 발생.
		//int a = 100; int arr[] = new int[3]//앞의 경우엔 기본타입(프리미티브), 뒤의 경우엔 참조변수(레퍼런스)
		int a = 100;
		
		int arr[] = new int[3];
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 30;
		System.out.println(arr);
		
		for(int i = 0 ; i < arr.length ; i++) {
			System.out.printf("%d\t", arr[i]);
		}
		
		System.out.println("Type 2");//새로운 형식의 for문 ()사이에 콜론이 있고 오른쪽엔 arr명, 왼쪽엔 자료형 + data
		for (int data:arr) {
			System.out.printf("%d\t", data);	//일련번호를 달기는 어렵다.		
		}
	}

}
package array;

public class P103 {

	public static void main(String[] args) {
		
		//int arr[] = new int[3];
//		int []arr = new int[3]; //이렇게도 배열 선언 가능
//		arr[0] = 10;
//		arr[1] = 20;
//		arr[2] = 30;//이 방법처럼 데이터베이스에서 데이터를 가져와서 배열에 넣는 방법이 더 많이 씀.
		int arr[] = {10,20,30};//이렇게 쓰는 경우는 거의 없다. 
		System.out.println(arr);

		for (int data:arr) {
			System.out.printf("%d\t", data);
		}
	}

}
package array;

import java.util.Arrays;
import java.util.Random;

public class P104 {

	public static void main(String[] args) {
		
		int arr[] = new int[10];
		
		Random r = new Random();
		
		for(int i = 0 ; i < arr.length ; i++) {
//			int data = r.nextInt(99) + 1;//1부터 99까지
//			arr[i] = data;	
			arr[i] = r.nextInt(99) + 1;//위의 두 줄을 한 줄로 쓸 수 있음
		}
		
		System.out.println(Arrays.toString(arr));//배열정보가 어떻게 들어가 있는지 확인하는 메소드
		
		for(int a : arr) {
			System.out.printf("%d\t", a);
		}
		
		//배열의 합과 평균을 구하시오
		int sum = 0;//초기화를 시키는 것
		double avg = 0.0;
		for(int a : arr) {
			sum += a;
		}
		avg = (sum * 1.0) / arr.length;
		System.out.printf("\nsum : %d, avg = %.2f", sum, avg);
	}

}
package array;

import java.util.Arrays;
import java.util.Random;

public class P105 {

	public static void main(String[] args) {
		
		int arr[] = new int[5];//프로그래밍은 요소 하나 수정이 된다고 다른것이 작동이 안해서는 안된다.
							   //배열을 10->5로 바꿔도 정상작동해야함. ex)arr.length가 10 이라고 10으로 해버리면 안됨.
		
		Random r = new Random();
		
		for(int i = 0 ; i < arr.length ; i++) {
			arr[i] = r.nextInt(99) + 1;//위의 두 줄을 한 줄로 쓸 수 있음
		}
		
		System.out.println(Arrays.toString(arr));//배열정보가 어떻게 들어가 있는지 확인하는 메소드

		//배열의 합과 평균을 구하시오
		//홀수번째 합과 평균을 구하시오
		
		int sum = 0;
		int sum2 = 0;
		int cnt = 0;
		double avg = 0.0;
		double avg2 = 0.0;
		
		for (int i = 0 ; i < arr.length ; i++) {
			sum += arr[i];
			if(i%2 == 0) {//홀수번째이기 때문에 i%2가 1인 경우를 생각하지만
						  //index는 0부터 시작하기 때문에 i%2 ==0인 경우가 홀수번째다.
				sum2 += arr[i];
				cnt++;
			}
		}
		avg = (sum * 1.0) / arr.length;
		avg2 = (sum * 1.0) / cnt;
		System.out.printf("%d, %.2f, %d, %.2f", sum, avg, sum2, avg2);
	}

}
package array;

import java.util.Arrays;
import java.util.Random;

public class P106 {

	public static void main(String[] args) {
		
		int arr[] = new int[5];
		Random r = new Random();
		
		for(int i = 0 ; i < arr.length ; i++) {
			arr[i] = r.nextInt(99) + 1;
		}
		
		System.out.println(Arrays.toString(arr));
	
		//배열의 합과 평균을 구하시오
		//배열에 홀수의 값들의 합과 평균을 구하시오
		
		int sum = 0;
		double avg = 0.0;
		int cnt = 0;
		
		for (int i = 0 ; i < arr.length ; i++) {
			if (arr[i]%2 == 0) {
				continue;
			}
			sum += arr[i];
			cnt++;
		}
		avg = (sum * 1.0) / cnt;
		System.out.printf("%d, %.2f", sum, avg);
	}

}

for(int i = 0 ; i < arr.length ; i++)
for(int i data : arr) <- for each구문
두 방법을 상황에 맞게 쓰면 됨.

집합체와 for문을 배웠다.

package array;

import java.util.Arrays;
import java.util.Random;

public class P114 {

	public static void main(String[] args) {
		int temp[] = new int[5];
		int arr[][] = new int[5][5];

		Random r = new Random();
		
		for (int i = 0 ; i < arr.length ; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				arr[i][j] = r.nextInt(9) + 1;
			}
		}
		System.out.println(Arrays.toString(arr));
		
		for (int i = 0 ; i < arr.length ; i++){
			for (int j = 0 ; j < arr[i].length; j++) {
				System.out.printf("%d\t",arr[i][j]);
			}
			System.out.println("");
	}
		System.out.println("------------------------------");
		//위의 내용을 for-each로 변경하시오
		
		for (int[] a : arr) {//arr에서 끄집어 내는 것은 int의 배열이다! 따라서 int[] a로 요소를 받는다.
			for (int b : a) {//위에서 끄집어낸 배열 a에서 받는 것은 int다. 따라서 b
				System.out.printf("%d\t", b);//출력은 a에서 끄집어낸 b를 순차적으로 끄집어 내는 것이므로 b만 출력.
			}
			System.out.println("");
		}

	}
}
package array;

public class P115 {

	public static void main(String[] args) {
		String strs[] = new String[3];
		strs[0] = "abc";
		strs[1] = "def";
		strs[2] = "ghi";
	}

}

package array;

public class P120 {

	public static void main(String[] args) {
		int a[] = {1,2,3,4,5,6,7,8,9,10};
		int sum = 0 ;
		double avg = 0.0;
		for (int c : a) {
			sum += c;
		}
		avg = (sum * 1.0) / a.length;
		System.out.printf("sum : %d, avg: %.2f",sum, avg);
	}

}

배열 끝


package array;

import java.util.Scanner;

public class P121 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("Input command[q, i, s]");
			String cmd = sc.next();
			if(cmd.equals("q")) {
				System.out.println("Quit...");
				break;
			}else if (cmd.equals("i")) {
				System.out.println("Insert...");
				System.out.println("Input ID......");
				String id = sc.next();//입력된 데이터를 데이터베이스에 저장한다.
				System.out.println("Input PW......");
				String pw = sc.next();
				System.out.println("Input name......");
				String name = sc.next();
				System.out.printf("%s, %s, %s inserted...\n",id, pw, name);
			}else if (cmd.equals("s")) {
				System.out.println("Select...");
			}else {
				System.out.println("Invailid command...");
				System.out.println("Try again");

			}
		}//end while
		System.out.println("Bye");
		sc.close();
		
		//처음에 배웠던 부분을 복습한 것이지만,
		//이러한 코딩은 JAVA가 아니다. 안좋은 코딩임.
	}

}
package array;

import java.util.Scanner;

public class P122 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("Input command[q, a1, a2, a3, a4]");
			String cmd = sc.next();
			if(cmd.equals("q")) {
				System.out.println("Quit...");
				break;
			}else if (cmd.equals("a1")) {
				
			}else if (cmd.equals("a2")) {
				
			}else if (cmd.equals("a3")) {
			
			}else if (cmd.equals("a4")) {
			
			}else {
				System.out.println("Invailid command...");
				System.out.println("Try again");

			}
		}//end while
		System.out.println("Bye");
		sc.close();

	}

}
package ws1;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Ws {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("Input Command[q,a1,a2,a3,a4]");
			String cmd = sc.next();
			if (cmd.equals("q")) {
				System.out.println("QUIT");
				break;
			} else if (cmd.equals("a1")) {
				// 5~9까지의 숫자를 입력 받는다.
				// 입력받은 숫자만큼 배열을 생성하고
				// 1~9까지의 랜덤한 숫자를 배열에 넣는다.
				// 배열 정보를 출력 한다.
				// 합과 평균을 출력 한다.

				Scanner sc1 = new Scanner(System.in);
				System.out.print("5~9 까지 숫자 중 하나를 입력해주세요: ");
				int number = sc1.nextInt();
				int[] arr = new int[number];

				Random r = new Random();

				for (int i = 0; i < arr.length; i++) {
					arr[i] = r.nextInt(9) + 1;

				}

				System.out.println(Arrays.toString(arr));

				int sum = 0;
				for (int a : arr) {
					sum += a;
				}
				double avg = 0.0;
				avg = sum / (arr.length * 1.0);

				System.out.printf("%d, %4.2f \t" , sum, avg);

			} else if (cmd.equals("a2")) {
				//5~9까지의 숫자를 입력 받는다.
				Scanner scA2 = new Scanner(System.in);
				System.out.println("5~9 사이의 숫자를 입력해주세요.");
				String lenArrCmd = scA2.next();
				//입력받은 숫자만큼 배열을 생성하고
				int lenArr = Integer.parseInt(lenArrCmd);
				int arr[] = new int[lenArr];
				//1~9까지의 랜덤한 숫자를 배열에 넣는다.
				Random r = new Random();
				for(int i=0; i < arr.length; i++) {	
					arr[i] = r.nextInt(9)+1;  
				}
				//배열 정보를 출력 한다.
				System.out.println(Arrays.toString(arr));  
				//홀수 값만의 합과 평균을 출력 한다.
				int sum = 0;
				double avg = 0;
				int cnt = 0;
				
				for(int i=0; i < arr.length; i++) {
					if(arr[i] % 2 != 0) {
						sum += arr[i];
						cnt ++;
					}		 
				}
				
				avg = (sum*1.0)/cnt;
				System.out.printf("sum: %d, avg: %4.2f", sum, avg);


			} else if (cmd.equals("a3")) {
				// 5~9까지의 숫자를 입력 받는다.
				// 입력받은 숫자만큼 배열을 생성하고
				// 1~9까지의 랜덤한 숫자를 배열에 넣는다.
				// 배열 정보를 출력 한다.
				// 짝수 값만의 합과 평균을 출력 한다.
				
				System.out.println("5~9사이의 숫자를 입력하세요");
				int a3cmd = sc.nextInt();
				int[] a3arr = new int[a3cmd];
				Random a3r = new Random();
				
				for (int i = 0; i < a3arr.length; i++) {
					a3arr[i] = a3r.nextInt(9) + 1;
				}
				
				System.out.println(Arrays.toString(a3arr));
				int sum = 0;
				double avg = 0.0;
				int cnt = 0;
				for (int i = 0 ; i < a3arr.length; i++) {
					if (a3arr[i]%2 == 1) {
						continue;
					}
					sum += a3arr[i];
					cnt++;
				}
				avg = (sum * 1.0) / cnt;
				System.out.printf("sum : %d, avg : %.2f\n", sum, avg);

			}  else if (cmd.equals("a4")) {
				// 5~9까지의 숫자를 2개 입력 받는다.
				// 2차원 배열을 만든다.
				// 1~9까지의 랜덤한 숫자를 배열에 넣는다.
				// 배열 정보를 출력 한다
				// 배열의 합과 평균을 출력 한다.

				// (1) Random 숫자 2차원 배열에 입력 - size를 결정함 (a * b 사이즈의 행렬)
				Random k = new Random();
				int a = k.nextInt(5) + 5;
				int b = k.nextInt(5) + 5;
				int arr[][] = new int[a][b];
				
				// (2) 위에서 정해진 a*b 사이즈의 행렬에 Random한 숫자 입력
				Random r = new Random();
				for (int i = 0; i < arr.length; i++) { // Random한 숫자를 2차원 배열에 입력
					for (int j = 0; j < arr[i].length; j++) {
						arr[i][j] = r.nextInt(9) + 1;
					}
				}
				// (3) 전체 배열의 합계와 평균 계산
				int sum = 0;
				int cnt = 0;
				double avr = 0.0;
				for (int i = 0; i < arr.length; i++) { // Start of Outer For
					for (int j = 0; j < arr[i].length; j++) { // Start of Inner for
						System.out.printf("%d\t", arr[i][j]);
						sum += arr[i][j];
						cnt++;
					} // Start of Inner for
					System.out.println("");
				} // End of Outer For
				avr = (double) sum / cnt;
				System.out.printf("A4_행의 수(검증 5~9) : %d\nA4_열의 수(검증 5~9) : %d\nA4_전체 요소의 합계 : %d\nA4_전체 요소의 평균 : %4.2f\n", a, b, sum, avr);
				break;
			} // End of "a4"

			else {
				System.out.println("Invalid command");
				System.out.println("Try agin");

			}
		} // end while
		System.out.println("BYE...");
		sc.close();

	}

}
profile
안녕하세요

0개의 댓글