개발공부 2023 ~03~13

복습 5일차 (키보드 입력 받아 값 처리하기,Random 객체 )

주우동 2023. 3. 18. 14:42

키보드 입력을 읽어오는 기능을 제공하는 keyboardReader 객체를 생성 및 값 처리

package pratice;

import util.KeyboardReader;

public class Demo7 {

	public static void main(String[] args) {
		KeyboardReader reader = new KeyboardReader();
		//키보드 입력을 읽어오는 기능을 제공하는 keyboardReader 객체를 생성한다.
		// new keyboardReader() -> new 키워드를 사용해서  keyboardReader 설계도로 객체를 생성한다.
		//keyboardReader reader -> keyboardReader 설계도로 생성된 객체의 주소값을 담는 참조변수 reader를 생성한다.

		//국어,영어,수학 점수를 입력받아서 총점과 평균 출력하기

		System.out.println("국어점수를 입력하세요! :"); 
		int kor = reader.readInt();				//국어점수를 입력받는 기능
		System.out.println("영어점수를 입력하세요! :");
		int eng = reader.readInt();
		System.out.println("수학점수를 입력하세요! :");
		int meth = reader.readInt();
		
		int total = kor+eng+meth;
		
		System.out.print("국어: "+kor+"\t"+"수학:\t"+eng+"영어:\t"+meth+"평균:\t"+total);
	}
}

결과값

keyboardReader를 이용해서 사용자가 입력한 값을 읽어와서 배열에 저장하기

//keyboardReader를 이용해서 사용자가 입력한 값을 읽어와서 배열에 저장하기
		// 학생이름을 입력받아서 배열에 저장하기, 총 학생수는 3명으로 제한한다.
		KeyboardReader reader = new KeyboardReader(); //리더란 객체를 리모콘에 연결지어놓았다.
		String[] names = new String[3]; //스트링 배열 3의 크기 선언
		for(int i=0;i<names.length;i++) { //배열의 길이만큼 for문 반복
		System.out.println("학생이름을 입력하세요 : ");
		String value =reader.readString();  //스트링value에 이름 값을 받는다
		names[i]=value; //names 배열에 입력받은 값을 저장한다.
		}
		//for(int i=0;i<names.length; i++) {
			//System.out.print(names[i]+"\t"); //for문을 이용한출력
			//}
			
		for(String name : names) {
			System.out.println(name); // 향상된 for문을 이용한 출력
		}

결과값 

 

Random 객체 생성 및 최대값 찾기

package array;
import java.util.Random;

public class Random1 {
	
	public static void main(String[] args) {
		//random 객체 랜덤한 수를 출력한다/ 임의의 난수를 제공하는 것 
		//nextInt(int bound) : bound에 지정한 숫자를 기준으로 0~bound 범위에 속하는 임의의 정수를 제공 0은 포함되고 bound는 포합되지 않는다.
		//배열 크기 10 /배열에 저장된 가장 큰값과 작은 값을 출력하라!
		//1.배열을 생성한다,
		int[] arr = new int[10];
		//2.임의의 난수를 발생시키는 객체 random을 생성한다.
		Random random = new Random();
		//3.배열의 크기만큼 반복수행해서 배열을 임의의 난수에 저장한다.
		for(int i=0;i<arr.length;i++) {
			arr[i] = random.nextInt(100)+1;  //사용법 객체명(random).next(타입값 대문자시작)(범위);
		}
		//3.5 배열 저장된 값 출력
		for(int i : arr) {
			System.out.println(i);
		}
		//4.배열에 저장된 값 중에서 가장 큰수와 작은수를 출력한다.
		int max = arr[0]; //arr의 0번째 값 대입 
		for (int i=1;i<arr.length;i++) { //arr[1]부터 배열 크기만큼 반복되는 for문 
			int nux= arr[i]; //nux에 arr[i]값을 대입
			if(nux>max) { //nux값이 max보다 크다면
				max = nux; //max nux값을 대입
			}
		}
		//5.max의 값 출력
		System.out.println("최댓값 : "+max);
		
		//최소값 찾기도 똑같다.!!
		
	}
}

결과값 

 

 

랜덤한 수를 입력받고 그 수에 3,6,9가 포함된 숫자 카운트해보기

package array;

import java.util.Random;

public class Array6 {
	
	public static void main(String[] args) {
		// 랜덤한 수를 입력받고 그 수에 3,6,9가 포함된 숫자 카운트해보기
		Random random = new Random(); //랜덤객체 생성
		int count = 0; //count 선언
		int[] ary = new int[10]; //배열 선언
		for(int i=0;i<ary.length;i++) {
			int st = random.nextInt(100)+1; //랜덤변수의 범위 지정 및 st에 대입
			ary[i]= st;
		}
		for (int i : ary){ //향상된 for문 ary배열 전체 사용
			
			int num = i; 
			if((num%10==3)||(num%10==6)||(num%10==9)) {//ex: num 43%10은 3 일의 자리를 나머지 연산으로 구한후 비교
		
				count++; //조건에 부합하면 카운트 증가
				continue; // 33 66 등 카운트가 두개 올라가는 것을 방지하기 위해 continue
			
			}	
			if((num/10==3)||(num/10==6)||(num/10==9)) {//ex: num 43/10은 4 십의 자리를 몫 연산으로 구한후 비교
		
				count++;
				}
		}
		System.out.println("3,6,9가 포합된 숫자 갯수 : "+count); //횟수 출력
		for(int ary1 : ary ) {
			System.out.println(ary1);
		}
	}
}

결과값 

 

*자바에서 대문자로 시작하는건 항상 클래스 이름 소문자는 식별자이름
Random(클래스) random(식별자) = new Random(클래스)();
Random cla = new Random(); 참조할 클래스 선언

다음주 2주동안 상속과 클래스를 배우는데 가장중요한 부분이다!