JAVA/이론 정리 및 예제

[JAVA/자바] #3_0 제어문 / beforeTest

chaewon 2021. 9. 5. 18:02

제어문 개념 정리 전 테스트!

 

  • 자바에서는 클래스가 제공하는 필드(전역변수)나 메소드 사용시 반드시 new를 사용해 객체를 생성해야 사용할 수 있다.
  • 해당하는 주소를 가진 레퍼런스를 이용해 실행해야만 한다.
  • 클래스명 레퍼런스변수명 = new 클래스명();
  • 레퍼런스변수명.메소드명();        -> non-static 메소드 일 경우

java.lang.Math 클래스 테스트

별도로 import를 하지 않아도 사용할 수 있는 패키지 java.lang

System.out.println("상수 PI : " + Math.PI);                                     //클래스명.필드명()

System.out.println("-7의 절대값 : " + Math.abs(-7));
System.out.println("-123.5의 절대값 : " + Math.abs(-123.5));
// 난수 : 임의의 값, 무작위로 만들어지는 알 수 없는 값
System.out.println("임의의 난수 : " + Math.random());                           // 1이 넘지 않는 값

// 1부터 100까지의 난수 구하기
// int random = (int)(Math.random() * 100) + 1;                                 // 0 ~ 99.999 -> int로 강제형변환 / 1 ~ 100 사이의 난수

// 1부터 3까지의 난수 발생
int random  = new Random().nextInt(3) + 1;

System.out.println("random : " + random);

 

사용자가 원하는 랜덤 범위의 값 추출하기

// 위의 4가지 범위의 난수를 출력하는 구문을 Math.random()과 Random클래스의 nextInt()를 이용하여 출력

// 0~9까지의 랜덤수
int random = (int)(Math.random() * 10);
System.out.println(random);
int random1 = new Random().nextInt(9);
System.out.println(random1);

// 1~10까지의 랜덤수
int random2 = (int)(Math.random() * 10) + 1;
System.out.println(random2);
int random3 = new Random().nextInt(9) + 1;
System.out.println(random3);

// 20~35까지의 랜덤수
int random4 = (int)((Math.random() * 16) + 20);                               // Math.random() * 난수 개수 + 시작값
System.out.println(random4);
int random5 = new Random().nextInt(16) + 20; //0~15 => 20~35
System.out.println(random5);

// 0 또는 1
int random6 = (int)(Math.random() * 2);         // 0,1
System.out.println(random6);
int random7 = new Random().nextInt(2);          // 0,1
System.out.println(random7);

// byte 범위
int num = (int)(Math.random() * 256) - 128;
System.out.println(num);

 

java.util.Scanner 클래스의

next(), nextLine() 테스트

// next() : 공백이 없는 연속된 문자열의 값 입력시 사용
// nextLine() : 공백이 포함된 문자열의 값 입력시 사용

Scanner sc = new Scanner(System.in);                                           // ctrl + shift + o or ctrl + 1

System.out.print("문자열 입력 : ");
String str = sc.next();

System.out.println("str : " + str);

// 버퍼의 한 줄 읽기(즉, 버퍼 비우기) / 버퍼 - 입력시 담아놓는 공간
sc.nextLine();                                                                 // 한 줄을 날려버림

System.out.print("정수 하나 입력 : ");             // 2 enter
int num = sc.nextInt();                       //2                             // 정수만 읽어드림                                                               // InputMismatchException 에러발생 - 입력버퍼와 enter값 자체가 남아                                                    있어서 타입 misamtch 에러 발생

System.out.println("num : " + num);

System.out.print("공백이 있는 문자열을 입력하세요 : ");
// 엔터 값이 그대로 남아 있기 때문에 버퍼 비우기를 해야 한다.
sc.nextLine();
String str2 = sc.nextLine();                                                   // 버퍼에 남아있는 enter를 읽어와서 다음 문장이 바로 출력되는 사건 발생

System.out.println("str2 : " + str2);