본문 바로가기
국비학원 전 강의 필사/JAVA 플레이그라운드

#23 두 수의 합 구하기 풀이 - <JAVA플레이그라운드>

by kkooHan 2022. 8. 19.

 

출처 : https://www.inflearn.com/course/java-codesquad/dashboard

 

[무료] 만들어 가면서 배우는 JAVA 플레이그라운드 - 인프런 | 강의

는 마스터즈코스 화이트레벨을 수강하기 위한 준비단계입니다. 대상은 코딩을 전혀 경험해보지 않았던 분들을 위한 과정입니다. 기존의 이론 위주로 학습 방식이 아니라 무엇인가를 만들어가

www.inflearn.com

 

 

 

 

 

 

필사 :

 

 

int a,b;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
        int a,b;

 

 

키보드로 두 수를 입력 받아야 하므로

Scanner scanner = new Scanner();

 

 

 

Scanner를 블록한 상태에서

Ctrl + Shift + M을 누르면

자동으로 import java.Util.Scanner; 가 입력된다.

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
		int a,b;
		Scanner scanner = new Scanner()

Scanner scanner = new Scanner();

스캐너는 입력을 쉽게 받게 도와주는 것인데

원래는 파일을 읽을 수 있다.

 

하지만 우리는 파일에서 읽는 것이 아니고

키보드로 읽을 것이다.

 

 

자바에서 키보드는 System.in으로 입력하면 된다.

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
		int a,b;
		Scanner scanner = new Scanner(System.in);

 

 

String s1, s2;

s1 = scanner.next();

s2 = scanner.next();

package jh.calendar;

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
		int a,b;
		Scanner scanner = new Scanner(System.in);
		String s1, s2;
		s1 = scanner.next();
		s2 = scanner.next();

 

 

s1, s2를 a, b로 설정하지 않는 이유 : 

 

s1 자리에 a를 입력하고 툴팁을 보면

'Type mismatch : cannot convert from String to int'라고 이유가 나온다.

 => scanner.next(); 변수는 키보드로 입력받은 것을 스트링 변수에만 넣어줄 수 있다.

 

 

지금까지 한 것을 출력해보겠다.

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
		int a,b;
		Scanner scanner = new Scanner(System.in);
		String s1, s2;
		s1 = scanner.next();
		s2 = scanner.next();
		System.out.println(s1 + ", " + s2);
	}
}

 

 

경고는 일단 무시.

 

 

입력시 10 (스페이스) 100으로 입력해도 되고

10 (엔터) 100으로 입력해도 된다.

 

 

출력된 '10, 100'은 숫자로 보이지만 문자이다.

 

 

'입력 요청 메세지'를 입력하겠다.

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
		int a,b;
		Scanner scanner = new Scanner(System.in);
		String s1, s2;
		System.out.println("두 수를 입력해 주세요");
		s1 = scanner.next();
		s2 = scanner.next();
		System.out.println(s1 + ", " + s2);
	}
}

사실 입력하는 값이 문자열이라서

abc 10000원을 입력해도 결과가 잘 나오긴 한다.

 

 

이제 s1에서 받은 문자열을 a에 넣어주겠다.

a = Integer.parseInt(s1);

b = Integer.parseInt(s2);

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		// 입력 : 키보드로 두 수의 입력을 받는다.
		// 출력 : 화면에 두 수의 합을 출력한다.
		int a,b;
		Scanner scanner = new Scanner(System.in);
		String s1, s2;
		System.out.println("두 수를 입력해 주세요");
		s1 = scanner.next();
		s2 = scanner.next();
		a = Integer.parseInt(s1);
		b = Integer.parseInt(s2);
		System.out.println(a + ", " + b);
	}
}

Integer -> 정수형 클래스

 

cf) int -> 프리미티브? 타입

자세한 것은 자바책을 참고해라.

 -> try hello world 자바, 생활코딩 자바, 열혈강의 윤성오 유튜브 영상 등 하나 골라서 공부하면 된다.

 

 

결과값 표현 방법 1

		int c = a + b;
		System.out.println("두 수의 합은 " + c + "입니다.");

 

 

결과값 표현 방법 2

 

"두 수의 합은" + a + b + "입니다." 

input : 10 20

output : 두 수의 합은 1020입니다.

 

 

결과값 표현 방법 3

"두 수의 합은" + (a + b) + "입니다." 

input : 10 20

output : 두 수의 합은 30입니다.

 

 

최종 결과값 표현 방법 1

"두 수의 합은" + c + "입니다." 부분이 지저분해서 수정하겠다.

System.out.printf("두 수의 합은 %d입니다.", a + b);

%d에는 정수만 넣을 수 있다.

a+b가 %d자리로 들어간다.

 

 

최종 결과값 표현 방법 2

System.out.printf("%d와 %d의 합은 %d입니다.", a, b, a + b);

 

 

 

 

이번 강의에서 했던 것은

int라는 변수 사용.

scanner 클래스 사용.

 

 

 

scanner.close(); -> 아까 스캐너에서 났던 leak 오류 해결.

입력 장치를 열면 문을 닫아야 한다.

 

파일이든 뭐든 열면

반드시 작업을 끝내고 나서

close를 습관적으로 해주자.

 

 

 

주석을 깔끔하게 옮기기.

package jh.calendar;

import java.util.Scanner;

public class Sum {
	public static void main(String[] args) {
		int a,b;
		
		// 입력 : 키보드로 두 수의 입력을 받는다.
		Scanner scanner = new Scanner(System.in);
		String s1, s2;
		System.out.println("두 수를 입력해 주세요");
		s1 = scanner.next();
		s2 = scanner.next();
		a = Integer.parseInt(s1);
		b = Integer.parseInt(s2);
		
		// 출력 : 화면에 두 수의 합을 출력한다.
		System.out.printf("%d와 %d의 합은 %d입니다.", a, b, a + b);
		scanner.close();
	}
}

 

완료 후 commit, push도 잊지 말고 해주세요!

 

 

 

 

 

느낀점 : 

 

확실히 꼼꼼하고 섬세하시다.

 

현개발자의 코드 작성 방식을 살펴볼 수 있어서 좋았다.

 

내가 작성했던 코드와 비교해보자.

 

 

 

비교해보니

굳이 배열을 사용하지 않고 코드를 짜셨다.

 

그리고 확실히

보다 깔끔하게 정리하셔서

다른 개발자가 보기에 편할 것 같다.

 

문제 정의를 주석으로 표현하신 뒤

문제를 구현하시고

그 주석을 활용해서

코드를 설명하고 계신다.

 

댓글