본문 바로가기

STUDY/국비과정

[JAVA 웹 개발 공부] 국비지원 3일차 - 자바의 특징, 변수, 출력, Scanner 클래스, 예제문제

자바의 특징

 

1. 컴퓨터 구조에 중립적이다.

자바는 자바가상기계(JVM)에 의해 실행되므로 CPU나 운영체제의 종류에 관계없이

자바 가상 기계를 설치할 수 있는 시스템에서는 어디서나 실행할 수 있다.

2. 객체 지향적이다.

자바는 객체 지향 프로그래밍(Object Oriented Programming)이다.

객체 지향은 객체별로 코드를 작성하고 객체들을 조합하여 전체 프로그램을 완성하는 프로그램 설계 방법론이다.

3. 안전하다.

자바는 네트워크 환경에서 운영되는 언어이므로 다른 언어보다 안전성이 요구된다.

4. 멀티스레딩을 지원한다.

멀티스레딩이란 여러 가지 작업을 동시에 실행하는 것을 의미한다.

다른 언어와는 다르게 아주 쉽게 멀티스레딩 프로그램을 작성할 수 있다.

5. 동적이다.

자바는 동적으로 변화하는 환경에 적응하도록 설계되었다.

라이브러리는 실행 파일에 영향을 끼치지 않고 자유롭게 새로운 기능들을 추가할 수 있다.

 

 

자바프로그램의 구성 요소

 

1. 클래스(class)

클래스는 자바와 같은 객체 지향 언어의 기본적인 단위이다.

클래스들이 모여서 하나의 자바 프로그램이 된다.

2. 메소드(method)

메소드는 특정한 작업을 수행하는 코드의 묶음이다.

메소드는 외부로부터 입력을 받아서 특정한 작업을 수행하고 작업의 결과를 반환한다.

3. 문장(statement)

문장은 사용자가 컴퓨터에게 작업을 지시하는 단위이다.

문장은 프로그램을 이루는 가장 기초적인 단위가 된다.

4. 주석(comment)

주석은 소스 코드가 하는 일을 설명하는 설명글로서 프로그램의 실행 결과에 영향을 끼치지 않는다.

여러 줄을 주석 처리 : /* text */

한 줄짜리 주석 처리 : // text

 

 

변수

 

1. 변수(variable)

하나의 값을 저장할 수 있는 메모리 공간​을 뜻하며, 새로운 값을 저장하면 기존의 값은 사라진다.

2. 변수의 선언

변수는 사용하기 전에 반드시 미리 선언하여야 한다.

변수 선언이란 컴파일러에게 어떤 변수를 사용하겠다고 미리 알리는 것이다.

변수타입 변수이름;

int x; // 정수형 x 라는 변수 선언

3. 변수의 초기화

변수를 사용하기 전에 처음으로 값을 저장하는 것을 의미한다.

int age = 20 ; // 변수 age를 선언하고 20으로 초기화

4. 변수명

첫 단어의 첫글자는 소문자로 시작하고 두 번째 단어부터는 단어의 첫 글자를 대문자로 한다.

출력

 

1. 출력 방식

출력 명령어
설명
System.out.print()
괄호 안에 작성된 데이터를 출력
아무 데이터도 전달하지 않는 경우 오류 발생
System.out.println()
괄호 안에 작성된 데이터를 출력하고 행변경
아무 데이터도 전달하지 않는 경우 줄바꿈 기능 수행
System.out.printf()
괄호 안에 작성된 데이터를 출력
출력할 데이터가 변수 및 여러가지 타입이 복합적으로 사용될 경우 사용

2. 지시자

지시자
설명
%n
줄바꿈
%d
10진(decimal) 정수의 형식으로 출력
%o
8진(octal) 정수의 형식으로 출력
%x, %X
16진(hexa-decimal) 정수의 형식으로 출력
%f
부동 소수점(floating-point)의 형식으로 출력
%e, %E
지수(exponent) 표현식의 형식으로 출력
%c
문자(character)로 출력
%s
문자열(string)로 출력
%b
불리언(boolean) 형식으로 출력
%xd
x자릿수만큼의 자리를 차지
%0xd
x자릿수만큼의 자리를 차지하고 빈자리는 0으로 채움
%.xf
소수점 x자리만큼 표시

 

Scanner 클래스

 

1. Scanner 클래스란?

Scanner 클래스는 자바 애플리케이션이 사용자로부터 쉽게 정수나 문자열을 받을 수 있도록 제공하는 클래스이다.

2. import java.util.Scanner;

Scanner 클래스를 사용하기 위해선 import 문장으로 어디서 Scanner 클래스를 찾을 것인지 알려주어야 한다.

Scanner 클래스는 java.util 패키지에 있으므로 "import java.util.Scanner;"를 작성하여 Scanner 클래스를 포함시켜준다.

3. Scanner 클래스명 = new Scanner(System.in);

Scanner 타입의 변수를 선언하고, Scanner 클래스의 객체를 생성하여,

System.in을 통해 키보드로 받은 바이트들을 전달한다.

Scanner는 이것들을 분리하여서 정수, 실수, 문자열 형태로 만든다.

 

4. 입력 메소드

메소드
설명
next()
String 을 읽음, 띄어쓰기 뒷부분은 읽지 않음
nextLine()
String 을 읽음, 띄어쓰기를 포함하여 Enter치기 전까지 읽음
nextInt()
Int를 읽음
nextBoolean()
boolean 을 읽음
nextByte()
byte 를 읽음
nextShort()
short 를 읽음
nextLong()
long 을 읽음
nextFloat()
float 을 읽음
nextDouble()
double 을 읽음

 

Scanner 예제 문제

 

<예제 01>

직사각형의 가로와 세로를 정수로 입력받아 둘레와 넓이를 출력하는 프로그램을 작성하세요.

<예제 02>

사용자의 국어, 영어, 수학 점수를 입력받아 합계와 평균을 출력해보세요.

<예제 03>

사용자에게 정수 하나를 입력받아 제곱 값을 출력해보세요.

ex) 입력 : 3, 출력 : 9

<예제 04>

위의 프로그램을 원의 반지름을 입력받아 둘레와 넓이를 출력하는 프로그램으로 수정해주세요.

(PI의 값은 3.14)

<예제 05>

사용자에게 초 단위의 시간을 입력받아 시간 분 초의 형태로 변환하여 출력하는 프로그램을 작성하세요.

ex) 3666 -> 1시간 1분 6초

<예제 06>

사용자가 5자리 정수를 입력합니다.

정수 각 자리 수의 역순을 출력하는 프로그램을 작성하세요.

ex) 12345 -> 54321

<예제 07>

저금통에 들어 있는 금액을 계산하는 프로그램을 작성하세요.

사용자는 500원, 100원, 50원, 10원의 각 동전 개수를 입력합니다.

<예제 08>

Power JAVA 교재 85p 7번 상품 가격 계산기

상점에 가면 우리는 상품에 대한 돈을 내고 영수증을 받는다. 영수증에는 10% 부가세와 잔돈 등이 인쇄되어 있다.

구입한 상품의 가격과 손님한테 받은 금액을 입력하면 부가세와 잔돈을 출력하는 프로그램을 작성하여 보자.

 

받은 돈 : 10000

상품 가격 : 7500

부가세 : 750

잔돈 : 2500

<예제 09>

Power JAVA 교재 83p 1번 오렌지

하나의 상자에 오렌지를 10개씩 담을 수 있다고 하자. 오렌지가 127개가 있다면 상자 몇 개가 필요한가?

또 몇개의 오렌지가 남을까?

 

오렌지의 개수를 입력하시오: 127

12박스가 필요하고 7개가 남습니다.