JAVA 공부 (Day3)

hmLee·2021년 11월 17일
0

자바 기초

목록 보기
2/6

Scanner

  • Scanner는 키보드로 입력받기 위해 사용하는 클래스이다.
//Scanner 사용 구문
Scanner scan = new Scanner(System.in);
  • 좌변의 Scanner는 클래스이다.
  • 좌변의 scan은 객체명이다.
  • 우변의 new Scanner()로 객체를 생성하여 메모리에 올려준다.
  • 괄호 안의 System.in은 표준입력장치를 사용하겠다는 의미이다.
    (컴퓨터의 표준입력장치는 키보드이지만 키오스크의 경우 터치도 될 수 있다.)
  • Scanner는 자바의 기본 저장공간에 있지 않기 때문에 util에서 따로 import해서 사용 한다.
  • Scanner scan까지 타이핑하고 crtl + shift + o를 입력하면 자동으로 import된다.
//Scanner 사용 구문 최종
import java.util.Scanner;

...

Scanner scan = new Scanner(System.in);
  • 주로 '~을 입력하시오'와 같은 가이드와 함께 사용하게 되므로 System.out.println()구문과 같이 사용하게 된다.
import java.util.Scanner;

public class Scanner_Test {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("숫자를 입력하세요:");
        int num = scan.nextInt();

        System.out.printf("입력한 숫자는 " + num + "입니다.");
    }
}

연산자

  • 산술연산자: +, -, *, %(나머지), /(몫), Math.pow(n1, n2)(n1의 n2 제곱)
    ※ 제곱의 경우 while문을 사용할 수도 있다.
  • 비교연산자: >(크다), <(작다), >=(크거나 같다), <=(작거나 같다), ==(같다), !=(같지않다)
    ※ 항상 좌변을 기준으로 한다.
  • 논리연산자: &&(and), ||(or), !(not)
public class 논리연산자_예시 {

    public static void main(String[] args) {
        System.out.println(3 > 4); //false
        System.out.println(3 < 4); //true
        System.out.println(3 > 4 && (3 < 4)); //false

        //100이 짝수인가?
        System.out.println(100 % 2 == 0); //true
        System.out.println(100 % 2 == 1); //false
    }
}
  • 증감연산자: ++, --
public class 증감연산자_예시 {

public static void main(String[] args) {
    int i = 5, j = 0;

    //i++의 경우
    j = i++;
    System.out.println("i = " + i + ", j = " + j);
    //i가 먼저 인쇄되고 나서 j에 출력됨.
    //i = 6, j = 5

    //i, j값 리셋시키기
    i = 5;
    j = 0;

    j = ++i;
    System.out.println("i = " + i + ", j = " + j);
    //한번 실행되고 출력
    //i = 6, j = 6

    i = 100;
    System.out.println("i++ = " + i++); //100
    System.out.println("i = " + i); //101
}
}
- 보통 for문에서 i가 1씩 증가하니까 i++를 많이 쓰는데 나는 i += 1로 쓴다.
- 왜나면.. 어디서 이게 더 명확하다고 들었는데 이유는 까먹었다.ㅎ
  • 삼항연산자(조건연산자): 조건식? 값1 : 값2;
    조건이 true이면 값1, false이면 값2
import java.util.Scanner;

public class 조건연산자 {
//두 개의 정수를 입력받아 더 큰 수를 판단하여 출력
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.println("첫번째 정수: ");
		int num1 = scan.nextInt();
		System.out.println("두번째 정수: ");
		int num2 = scan.nextInt();
		
		int max = num1 > num2 ? num2 : num2;
		System.out.println(max);

	}

}
  • 결합연산자(복합대입연산자): +=, -+, *=, /=, %=

반올림 Math.round()

  • Math.round()를 사용하면 소수 첫째자리까지 반올림 된다.
public class 반올림 {

	public static void main(String[] args) {
		double pi = 3.141592;
		double shortPi1 = Math.round(pi);
		System.out.println(shortPi1); //3.0
        
        double shortPi2 = Math.round(pi * 1000);
        System.out.println(shortPi2); //3142.0
	}

}

거듭제곱 Math.pow(n1, n2)

  • n1의 n2제곱을 표현할 수 있다.
  • 이 때 n1과 n2는 double 타입이다.
import java.util.Scanner;

public class 거듭제곱 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.println("정수 입력: ");
		int num = scan.nextInt();
		
		int result = (int) Math.pow(num,  2);
		//Math.pow(num1, num2)의 값은 double이므로 int로 casting 해주었다.
        
		System.out.println(num + "의 제곱 = " + result);

	}

}

3일차에 배웠던 부분을 예시 위주로 복습해봤는데 우선 scanner에 대해서 조금 더 명확하게 알아야 할 것 같다.
그 다음에 스케너로 입력받는 next()친구들에 대해서도 공부해야할 것 같다.
int 타입으로 다룰 땐 그냥 자연스럽게 nextInt()로 받아서 썼는데
charAt()을 쓰려니 또 그냥 next()를 써야한다는데.. 왜....?

연산자도 설명하자면 더 자세하게 풀 수 있지만 얼른 활용해보고 싶으니깐 간단하게 패쓰

profile
정말 개발자가 될 수 있을까?

0개의 댓글