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("");
}
}
}

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구문
두 방법을 상황에 맞게 쓰면 됨.
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();
}
}