[20120925] 2일차(NetBeans 설치, 셋업, 자바기본입출력, 서식지정, 데이터타입, 자료형, 표준입력, 기본산술연산)
Java/기본문법 2012. 9. 25. 17:42CMD HERE 레지스트리 등록
- 가고자 하는 폴더에서 우클릭메뉴를 통해 CMD 디렉토리 바로 이동
참고
- 넷빈에서 한 프로젝트내에 두개 이상의 main이 있을 때 특정 .java파일을 실행하기 위해서는 shift + F6 단축키를 사용한다.
- 넷빈에서는 import를 자동으로 하려면 Alt+Enter키를 이용함.
- 키보드에서 받는 데이터는 무조건 String 일수밖에 없음
- 실수형을 계산할때는
int + int = int
int + double = double
형으로 출력되는 것을 기억하여 예를 들어 3을 나누어 주어야 하고 결과값이 실수가 나올수도 있을 경우라고 가정하면
3을 3.0으로 표기하여 코딩하면 올바른 값이 출력될 수 있다.
넷빈 다운로드 및 설치
1. http://www.oracle.com에서 넷빈(NetBeans IDE)다운로드
2. 넷빈에서는 자바 소스코드 작성을 위해서 프로젝트 단위로 생성.
1. New project > Categories: Java > Projects: Java Application
2. Project Name: 프로젝트 이름 입력 > Project Location: 위치지정
3. Create Main Class: 클래스 이름 입력
4. 끝!
5. 편집창에서 자바 소스 코드 입력
6. Run > Run Project (F6)
자바 기본 입출력
1. 표준 출력
프로그램 목적: 외부 데이터 입력 -> 내부적인 가공(연산) -> 결과 출력
표준 출력 스트림인 System.out 필드 -> PrintStream 자료형 반환
PrintStream 클래스의 하위 메소드인 println() 메소드 이용해서 데이터 출력.
예를 들어서,
System.out.println("메세지");
System.out.println(123);
-- 첫글자가 대문자인 단어는 클래스
-- 모든글자가 소문자인 단어는 키워드
-- 데이터 타입형은 클래스도 있고, 키워드도 있고....
println()과 printf()메소드를 자주 사용.
-- ln은 자동줄바꿈.
-- f는 포맷의 의미로 결과 출력시 서식과 함께 출력하고 줄바꿈을 자동으로 하지 않음.
System.out.printf("%s %n","메세지"); -- %s 는 문자 %d 는 숫자 라는 데이터의 서식을 지정
System.out.printf("%d %n",123); -- %n 은 줄내림
//서식 지정의 예
public class Test05 {
public static void main(String[] args) {
System.out.println("hello, java world!");
System.out.printf("%s %n","Hello, Java World!");
System.out.printf("%s %s %s %n", "Kim", "Hyun", "Wook"); // 서식수에 맞추어 데이터수도 동일하게
System.out.printf("%d + %d = %d %n", 10, 20, (10+20)); // (x, ....) 안에 x에서는 데이터타입과 함께 화면에
// 그대로 출력할 내용도 함께 직접 쓸수 있음.
System.out.printf("%d - %d = %d %n", 10, 20, (10-20));
System.out.printf("%d * %d = %d %n", 10, 20, (10*20));
System.out.printf("%d / %d = %d %n", 10, 20, (10/20)); // 연산결과가 0이 나오게 됨
System.out.printf("%d / %.1f = %.1f %n", 10, 20.0, (10/20.0)); // 연산결과가 0.5가 나오게 됨.
}
}
//결과
hello, java world!
Hello, Java World!
Kim Hyun Wook
10 + 20 = 30
10 - 20 = -10
10 * 20 = 200
10 / 20 = 0
10 / 20.0 = 0.5
2. 자료형
-> 컴퓨터 내부에서 자료를 취급하는 방법.
-> 기본자료형과 참조형으로 나눈다.
▶ 기본 자료형은 크기가 고정적이고, stack 메모리에서 관리된다. 또한, 요청시 바로 데이터를 받을 수 있다.
- 기본자료형 - 정수형: byte, short, int, long (대표는 int)
- 실수형: float, double (대표는 double)
- 논리형: boolean
- 문자형: char
-> 문자열은 String 클래스 자료형이다. 문자열은 "ABC"
▶ 참조형은 크기가 가변적이고, heap 메모리에서 관리된다. 또한, 요청시 데이터를 바로 받는 것이 아니라 참조값을 받게된다. 참조값은 실제 데이터를 찾을 수 있는 주소값이다.
- 참조형(가변형) - 배열 참조형
- 클래스 참조형: System, Object, String
- 인터페이스 참조형
메모리형식
Stack: 데이터를 바로 가져올수 있음.(복사의 개념. 원본은 남음). 기본자료형이 저장되는 공간
Heap: 데이터를 바로 가져올수 없으나, 가상의 값(참조값)을 가져올수 있다.(복사의 개념. 원본은 남음) 참조형이 저장되는 공간
3. 표준 입력
-> 키보드로부터 문자열(String 클래스 자료형)(enter를 입력할때까지 입력되는 문자들)을 입력 받을 때 사용
// String strData; -> strData로 선언된 변수에 대한 자료형 정의 구문
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String strData = br.readLine(); // 최상단 String strData; 구문을 없애고 strData 변수 앞에 String으로 써줘도 오케이
즉, 자료형 변수 = 데이터;
자료형 변수 = 외부 데이터 입력 구문;
과
자료형 변수;
변수 = 데이터;
가 동일하다는 의미임.
-> 변수의 자료형과 데이터의 자료형은 정확하게 일치하는 것이 권장하는 방법.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; // import java.io.*; 로 세줄을 하나로 처리할 수 있다.
클래스 선언{
public static void main (String [] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String 변수명 = br.readline();
프로그램 코딩소스~~~
.....
}
}
◆ 형광색 부분의 의미 ◆
입력데이터를 받기위해(readline()) 항상 같이 사용해야는 부분으로,
반드시 import와 throws 구문이 필요함.
//입력부터 처리, 출력 과정을 같이 실행하는 예 //Test06.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test06 {
public static void main(String [] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("이름:");
String strData = br.readLine();
//처리
String message = String.format("당신의 이름은 %s입니다.", strData);
//출력
System.out.println(message);
}
}
//결과
이름:kimhw
당신의 이름은 kimhw입니다.
잘못된 산술연산의 예
import java.io.*;
public class Test07 {
public static void main(String [] args) throws IOException {
//입력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("국어:");
String kor = br.readLine();
System.out.print("영어:");
String eng = br.readLine();
System.out.print("수학:");
String mat = br.readLine();
//처리
//총점=국어+영어+수학;
String tot = kor + eng + mat ;
//출력
System.out.printf("입력된 데이터는 %s, %s, %s입니다.%n", kor, eng, mat);
System.out.printf("총점은 %s 입니다.%n", tot);
}
}
//결과
국어:100
영어:90
수학:80
입력된 데이터는 100, 90, 80입니다.
총점은 1009080 입니다.
원인.
변수인 kor, eng, mat의 자료형은 String인 상대에서 + 산술이 이루어 졌기 때문에 "100", "90", "80"으로 컴퓨터가 인식하여
위와 같은 결과가 출력된 것이므로, Integer.parseInt(변수명) 을 통해 int 형으로 변환하여 처리해야 한다.
Integer.parseInt("숫자모양");
>> 스트링형인 것을 숫자로 형변환 시킬수 있음
입력된 숫자 데이터를 형변환하여 숫자로 바꾸는 과정(올바른 산술연산의 예)
-> 외부에서 입력된 데이터는 모두 자료형이 문자열형(String)이므로 필요시 숫자(int)로 변환하려면 Integer.parseInt()메소드를 이용해야 한다.
import java.io.*;
public class Test08 {
public static void main(String [] args) throws IOException {
//입력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("국어:");
String kor = br.readLine();
System.out.print("영어:");
String eng = br.readLine();
System.out.print("수학:");
String mat = br.readLine();
//처리
//총점=국어+영어+수학;
int tot = Integer.parseInt(kor) + Integer.parseInt(eng) + Integer.parseInt(mat);
//출력
System.out.printf("입력된 데이터는 %s, %s, %s입니다.%n", kor, eng, mat);
System.out.printf("총점은 %d 입니다.%n", tot);
}
}
//결과
국어:100
영어:90
수학:80
입력된 데이터는 100, 90, 80입니다.
총점은 270 입니다.
문제) Test08 소스에서 평균 계산해서 출력하는 과정 추가
문제) 현재 원-달러 환율은 1달러에 1119원입니다.
특정 달러 금액을 입력하면 원화금액을 출력하는 프로그램 작성
실행 예)
달러 금액? 10
10 달러 -> 11190원
'Java > 기본문법' 카테고리의 다른 글
WRITTEN BY