배열과 Scanner의 대해서 알아보자.
자바의 다차원 배열에서는 행의 수에 관심이 있고, 열에 대해서는 관심이 없다.
==>행열에 대해서 정밀하게 다루려면 Numpy를 사용하면 된다.
배열의 정렬
package java05;
public class Test02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] a = {22, 19, 72, 129, 34};
int b = 5;//위 배열의 요소 개수
int i, j, k;//사용할 변수 선언
System.out.println("데이터를 표시");
for (i=0; i<b; i++) { //b는 배열의 요소 개수, a.length로 대체
System.out.print(a[i]+ ", ");
}
System.out.println("\n");
for (j = 0; j < b-1; j++) { //b-1은 정렬이 끝난 인덱스 제외
for(i=j+1; i<b; i++) { //j+1은 정렬이 끝난 인덱스 제외
if(a[j]> a[i]) {
k= a[j]; //치환
a[j] = a[i];
a[i] = k;
}
}
}
System.out.println("정렬한 것 표시");
for(i=0;i<b;i++) {
System.out.print(a[i]+ ", ");
}
}
}

Scanner
Scanner scan = new Scanner (system.in);
int n = scan.nextInt(); //정수 입력
String cha = scan.next(); //문자 입력
String str = scan.nextLine(); //문자열 입력
double dou = sca.nextDouble(); //실수입력
package java05;
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Enter any integer");
Scanner scan1 = new Scanner(System.in);
int n = scan1.nextInt();
System.out.println("Enter any character");
Scanner scan2 = new Scanner(System.in);
String cha = scan2.next();
System.out.println("Enter String");
Scanner scan3 = new Scanner(System.in);
String str = scan3.nextLine();
System.out.println("Enter any double");
Scanner scan4 = new Scanner(System.in);
double dou = scan4.nextDouble();
System.out.println("integer :"+n );
System.out.println("character :"+cha );
System.out.println("String :" +str );
System.out.println("double :" +dou );
}
}

스캔을 받아서 첫번째 점수와 두번째 점수를 +, -, /, %하는 계산기를 만들어라.
package java05;
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
int num1, num2;
String str="";
Scanner scan1 = new Scanner(System.in);
System.out.println("첫번째 숫자를 입력하시오 : ");
num1 = scan1.nextInt();
System.out.println("두번째 숫자를 입력하시오 : ");
num2 = scan1.nextInt();
System.out.println("수행할 연산자 입력하시오(+,-,*,/,%) : ");
Scanner scan2 = new Scanner(System.in);
str = scan2.next(); //+,-,*,/,%를 문자로 취급
String result=""; //문자열로 하면 전수 등도 들어감
switch (str) {
case "+":
result = num1 + " + " + num2 + " = " + (num1+num2);
break;
case "-":
result = num1 + "-" + num2 + " = " + (num1-num2);
break;
case "*":
result = num1 + "*" + num2 + " = " + (num1*num2);
break;
case "/":
result = num1 + "/" + num2 + " = " + (num1/num2);
break;
default:
result = "연산자가 올바르지 않습니다."; break;
}
System.out.println("연산결과는 : " + result);
}
}

난수 (random)발생
임의의 수를 발생(난수)시키는 메서드 Random()을 사용한다.
import java.until.Random 클래스 패키지가 필요하다.
숫자를 입력 받을 때에는 int rand = new Random().nextInt(9);식으로 사용
Math.random() 메써드를 사용해도 된다.
#random 메써드는 처음만 랜덤으로 발생하고 다음부터는 중복숫자가 발생한다.
random.setSeed(System.currentTimeMillis());
→ random한 숫자를 추출하기 위해서는 늘변하는 값이 있어야 하는데
컴퓨터는 내장된 pseudo(system random number)number를 가지고 있다가 랜덤한
숫자가 연산등에서 필요하면 추출한다.현재시간을 seed로 사용하면 현재시간은 늘 변하기때문에
랜덤한 숫자 추출의 seed로 완벽하다.!!
package java05;
import java.util.Random;
public class Test08 {
public static void main(String[] args) {
Random random = new Random();
random.setSeed(System.currentTimeMillis());
//random한 숫자를 추출하기 위해서는 늘변하는 값이 있어야 하는데
//컴퓨터는 내장된 pseudo(system random number)number를 가지고 있다가 랜덤한
//숫자가 연산등에서 필요하면 추출한다.현재시간을 seed로 사용하면 현재시간은 늘 변하기때문에
//랜덤한 숫자 추출의 seed로 완벽하다.!!
System.out.println("랜덤한 n개 미만의 랜덤 정수 변환 : "+random.nextInt(46));
System.out.println("랜덤한 Boolean값 반환 : "+random.nextBoolean());
System.out.println("랜덤한 long값 실수 반환 : "+random.nextLong());
System.out.println("랜덤한 Float값 실수 반환 : "+random.nextFloat());
System.out.println("랜덤한 Double 실수 반환 : "+random.nextDouble());
System.out.println("랜덤한 정규분포 난수 반환 : "+random.nextGaussian());
}
}

난수로 로또 번호 만들기
package java05;
import java.util.Random;
public class Test09 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random rd = new Random();
rd.setSeed(System.currentTimeMillis());
for(int i=0; i<7; i++) {
System.out.print("["+(rd.nextInt(45)+1)+"]");
}
}//main
} // 로또 번호에서는 자주 나오는 숫자가 있으므로 가중치를 고려하면 더 좋다.

난수로 구구단 만들기
package java05;
import java.util.Random;
public class Test12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
int random = rand.nextInt(8) + 2; // 2~9까지 난수로 구구단 출력 . (9-2)+1
for (int i=1; i<=9; i++) {
System.out.println(random + " * "+i+" = "+ (random*i));
}
}
}

난수로 알파벳 대문자 출력
package java05;
import java.util.Random;
public class Test13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
int random = rand.nextInt((90-65)+1)+65;
System.out.println("문자1 :" + (char)random); // 문자로 추출
int random2 = rand.nextInt(('Z'-'A')+1) + 'A';
System.out.println("문자2 :"+(char)random2);
}
}

'JAVA' 카테고리의 다른 글
| [JAVA]클래스/ 메써드 (0) | 2022.07.26 |
|---|---|
| [JAVA] do while 문 (0) | 2022.07.26 |
| [JAVA] 제어문/배열 (0) | 2022.07.21 |
| [JAVA]문제 풀이 1 (0) | 2022.07.20 |
| [JAVA]연산자 (0) | 2022.07.20 |
댓글