본문 바로가기
JAVA

[JAVA] Scanner, 형변환, 연산자, if문

by 개폰지밥 2019. 3. 28.
반응형

자바를 어떻게 공부해야 할지 모르겠다.. 클래스가 뭔지 객체가 뭔지 수업이나 책은 읽어봐서 어느 정도 대답할 수 있는 상태이다. 코드를 봐도 어느정도 해석이 되는데 막상 코드를 작성하라고 하면 머릿속이 새하얗게 변한다. 어떻게 공부해야 효율직인지 고민을 했다. 인강을 들어야할까? 미니프로젝트를 하나 만들어야할까? 생각을 하다, 무식하게 공부하기로 했다. 지금까지 구매한 책들의 예제를 다 써보기로 했다!! 무식할 수는 있겠지만 꼼수부리지 않고 시간을 많이 투자하기로 했다. 오늘부터 시작!! 현재 집에 있는 책은 JAVA의 정석, 이것이 자바다(신용권의 Java 프로그래밍 정복), 절대 자바, 열혈 JAVA 이렇게 4권정도가 있다 ^0^ 

우선 JAVA의 정석 부터 시작!


| Scanner

- Scanner란?

화면으로부터 입력받는 클래스

- Scanner 사용법:

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

- nextLine();란

라인 분리자를 제외한 현재 줄의 나머지를 반환합니다. 위치는 다음 줄의 시작 부분으로 설정됩니다.

import java.util.Scanner;

public class ScannerEx {

	public static void main(String[] args) {
// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		System.out.println("두자리 정수를 하나 입력해주세요:");

		String input = sc.nextLine();
		int num = Integer.parseInt(input); // 입력받은 문자열을 숫자로 변환

		System.out.println("입력내용:" + input);
		System.out.println("num:" + num);
	}
}

 

결과

두자리 정수를 하나 입력해주세요:
22
입력내용:22
num:22

 

한번더 생각해보기

Integer.parseInt();를 사용하지 않고 바로 정수를 입력 받을 수는 없을까?

import java.util.Scanner;

public class ScannerEx {

	public static void main(String[] args) {
// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);

		System.out.println("정수를 입력하세요:");

		int i = sc.nextInt();

		System.out.println("정수:" + i);
	}
}

결과

정수를 입력하세요:
22
정수:22

 

| 형변환(캐스팅, casting)

- 형변환이란?

변수 또는 상수의 타입을 다른 타입으로 변환하는 것

- 형변환 방법

(타입) 피연산자
public class CastingEx1 {

	public static void main(String[] args) {
// TODO Auto-generated method stub

		int i = 1;
		double b = (double) i;

		System.out.println(b);
	}
}

결과

1.0

 

| 증감 연산자 ++ --

타입 설명 사용예
전위형 값이 참조되기 전에 증가시킨다 j=++i;
후위형 값이 참조된 후에 증가시킨다 j = i++;
public class OperatorEx2 {

	public static void main(String[] args) {
// TODO Auto-generated method stub
		int i = 5, j = 0;
		j = i++;
		System.out.println("전:" + j);

		i = 5;
		j = 0;

		j = ++i;
		System.out.println("후:" + j);
	}
}

결과

전:5
후:6

| 등가비교 연산자 == !=

비교연산자 연산결과
== 두 값이 같으면, true 아니면 false
!= 두 값이 다르면, true 아니면 false

| 논리 연산자 &&, ||, !

|| (OR결합) 피연산자 중 어느 한쪽만 true이면 true를 결과로 얻는다.

&& (AND결합) 피연산자 양쪽 모두 trune이어야 true를 결과로 얻는다.

| 비트 연산자 & | ^ ~ << >>

| (OR 연산자)

&(AND 연산자)

^(XOR연산자)

 

| 조건문 - if, switch

- if 문

if (조건식) {//조건식이 참(true)일 때 수행될 문장들을 적는다.}

- 실습

60점 이상일 때 합격출력하기

public class Score {

	public static void main(String[] args) {
// TODO Auto-generated method stub

		int i = 70;
		if (i > 60) {
			System.out.println("합격입니다");
		}
	}
}

- 결과

합격입니다

- if-else문

if문에 'else블럭'이 더 추가되었다. 'else'의 뜻이 '그 밖의 다른'이므로 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 수행하라는 뜻이다.

if(조건식){// 조건식이 참일 때 수행될 문장들을 적는다.}else{//조건식이 거짓일 때 수행될 문장들을 적는다.}

- 실습:

60점 초과일 때 합격입니다. 아니면 불합격입니다. 출력

public class Score {

	public static void main(String[] args) {
// TODO Auto-generated method stub

		int i = 50;
		if (i > 60) {
			System.out.println("합격입니다");
		} else {
			System.out.println("불합격입니다.");
		}
	}
}

- 결과

불합격입니다.

- if-else if문

if - else문은 두 가지 경우 중 하나가 수행되는 구조인데, 처리해야할 경우의 수가 셋 이상인 경우에는 한 문장에 여러 개의 조건식을 쓸 수 있는 'if-else if'문을 사용하면 된다.

if (조건식1) {
//조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식2){
//조건식2의 연산결과가 참일 때 수행도리 문장들을 적는다.
{ else if(조건식3){
//조건식의 연산결과가 참일 때 수행도리 문장들을 적는다.
{ else {//마지막에는 보통 else,블럭으로 끝나며, else블럭은 생략가능하다.
//위의 어느 조건식도 만족하지 않을 때 수행도리 문장들을 적는다.
}

- 처리과정

1) 결과가 참인 조건식을 만날 때까지 첫 번째 조건식부터 순서대로 평가한다.

2) 참인 조건식을 만나면, 해당 블럭{}의 문장들을 수행한다.

3) if-else if문 전체를 빠져나온다.

- 실습

90점 이상은 'A' 80점 이상 90점 미만은 'B' 70점 이상 80점 미만은 'C' 70점 미만은 'D'점수를 준다

public class Score {

	public static void main(String[] args) {
// TODO Auto-generated method stub
		int i = 60;
		if (i >= 90) {
			System.out.println("A");
		} else if (i >= 80) {
			System.out.println("B");
		} else if (i >= 70) {
			System.out.println("C");
		} else {
			System.out.println("D");
		}
	}
}

- 결과

60을 넣었을 때 => D
70을 넣었을 때 => C
80을 넣었을 때 => B
90을 넣었을 때 => A

 

반응형

'JAVA' 카테고리의 다른 글

20190401  (0) 2019.04.01
190329  (0) 2019.03.28
[JAVA] Star Craft 만들기  (0) 2019.02.22
자바 생성자  (0) 2019.01.29
자바 클래스 객체 인스턴스 메서드의 차이  (0) 2019.01.29

댓글