[JAVA+국비교육] 변수 선언과 자료형
by 무작정 개발반응형
2021.12.22
국비지원 2일 차 수업을 들었다.
본가에서 강남(역삼역)까지 편도 1시간이 걸리는 거리를 왔다 갔다 하니 힘들다..
하지만 대면으로 수업을 듣기 위해 힘을 내며 다닌다. 강의실 면적이 크고 소수 인원으로 운영해서 대면 수업으로 진행한다.
오늘의 수업 내용
1. 식별자란?
Java 코드 내에서 개발자가 사용한 이름을 식별자라고 한다. 클래스, 변수, 메서드 이름 등을 지정할 때 사용.
식별자 명명 규칙
- 첫 글자는 반드시 영문자나 '_'로 시작. 숫자 xx
- 식별자는 대소문자 철저히 구분
- java에서 사용되는 예약어는 식별자로 사용 못함
- 상수값을 표현하는 true, false, null은 식별자로 사용할 수 없음
- 영문자와 숫자와 '_', $의 조합
2. 변수
- 값을 담아두는 메모리 공간
- 데이터를 저장하는 그릇
- 한나의 데이터 값을 저장할 수 있음
- 정해진 값은 고정되어 있지 않고 계속 변할 수 있음
- 초기화를 안하면 변수 안에 기본적으로 쓰레기 값이 들어있음
package com.day1;
public class Test2 {
public static void main(String[] args) {
//변수 선언
//자료형 int : 정수(범위 : 약 -21억~21억) / 자료형은 8개 + String
int a=10; // int형 변수 a를 선언하고 10으로 초기화
int b=5;
int c,d; // 쓰레기 값이 들어있음
System.out.println(a); //10
System.out.println(b); //5
//System.out.println(c); // 컴파일 오류_코딩 상에는 문제없는데 실행하면 뜨는 오류는 런타임 오류
c = a + b;
System.out.println(c);//15 // syso 혹은 sout 쓰고 컨트롤 + 스페이스 누르면 (println) 자동완성
d = a - b;
System.out.println(d);//5
System.out.println(a + "+" + b + "=" + c);
System.out.println();
System.out.println(a + "-" + b + "=" + d);
//printf의 f는 format(모양)이다.
System.out.printf("%d + %d = %d %n", a, b, c);
System.out.printf("%d - %d = %d\n", a, b, d);
}
}
3. 자료형
4. 예제에서 사용할 클래스
BufferedReader 클래스
BufferedReader 클래스는 시스템으로부터 입력값을 받아오는 클래스
- BufferedReader 클래스를 사용하기 위해서는 인스턴스를 생성해야 함
- Integer.parseInt() → 매개변수로 넘겨받은 문자열 데이터를 정수형으로 변환
Scanner클래스? BufferedReader클래스
Scanner와 비슷하나 Scanner 클래스는 스페이스와 엔터를 모두 경계로 인식한다. 하지만
BufferedReader는 엔터만 경계로 인식하고, 데이터가 String으로 고정되어 있기 때문에 데이터를 가공해야 할 때가 많다. 또한 데이터가 버퍼를 거쳐 전달되어 데이터 처리 효율성이 높아진다. 많은 양의 데이터를 입력받을 경우에는 BufferedReader를 통해 입력받는 것이 효율적으로 좋은 방법이다. BufferedReader를 사용할 때 주의해야 할 점은,
꼭 예외처리를 해주어야 한다는 점이다. 보편적으로 throws IOException을 통해 예외처리를 해준다.
package com.day1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 패키지 클래스
public class Test4 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/* Scanner클래스랑 비슷해서 집가서 찾아보기
System.in : 키보드로 입력한 1byte의 문자
InputStreamReader : System.in로 읽은 1byte를 문자(2byte)로 변경
BufferedReader : 메모리상에 저장 공간 생성 (위에서는 저장공간 이름을 br로 선언했음)
언제부터 읽냐 엔터(Enter)까지 읽음 */
//int r;
double r;
double area, length;
System.out.print("반지름?");
//r = Integer.parseInt(br.readLine());
r = Double.parseDouble(br.readLine());
//Integer.parseInt 숫자(정수)로 바꾼다/ 바꾼 후 r에 넣는다
area = r * r * 3.14; // 위에서 area를 double로 선언해서 오류 안뜸
length = r * 2 * 3.14;
System.out.println("반지름: " + r);
System.out.println("넓이: " + area);
System.out.println("둘레: " + length);
}
}
package com.day1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test5 {
public static void main(String[] args) throws IOException {
//선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name; //String은 자료형처럼 쓰지만 클래스이다.
int kor, eng, tot;
//입력
System.out.print("이름?"); //suzi
name = br.readLine();
System.out.println("국어?");//60
kor = Integer.parseInt(br.readLine());
System.out.println("영어?"); //70
eng = Integer.parseInt(br.readLine());
//연산
tot = kor + eng;
//출력
System.out.println("이름: " + name);
System.out.println("국어: " + kor +", 영어: " + eng);
System.out.println("총점: " + tot + "점");
}
}
package com.day1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//문제2 : 밑변(width)와 높이(height)를 입력받아 삼각형 넓이(a) 구하기 double로 결과값 나오게 ㄱ ㄱ
//밑변 :
//높이 :
//넓이 : 밑변 * 높이 / 2
public class Test7 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double width, height, a;
System.out.println("(double)밑변의 길이는?");
width = Double.parseDouble(br.readLine());
System.out.println("(double)높이는?");
height = Double.parseDouble(br.readLine());
a = width * height / 2;
System.out.println("(double)밑변 : " + width);
System.out.println("(double)높이 : " + height);
System.out.println("(double)넓이는 : " + a);
}
}
반응형
'Language > Java' 카테고리의 다른 글
[JAVA+국비교육] 반복문 (0) | 2021.12.30 |
---|---|
[JAVA+국비교육] 증감연산자/산술연산자 & for문/if문 (0) | 2021.12.27 |
[JAVA+국비교육] 개발 환경 설치 및 출력 (0) | 2021.12.25 |
자바의 정석 | Ch 06 - 객체지향 프로그래밍1-2 (0) | 2021.12.17 |
자바의 정석 | Ch 06 - 객체지향프로그래밍1-1 (0) | 2021.12.16 |
블로그의 정보
무작정 개발
무작정 개발