반응형
[문제1]
나이가 19살인 사람의 졸업여부를 확인하는 프로그램을 작성해보자
조건1
20살 이상인 경우 "고등학교를 졸업했습니다" 출력
조건2
20살 미만인 경우 "학교에 다니고 있습니다" 출력

int age = 19;

if (age >= 20) {

System.out.println("고등학교를 졸업 했습니다.");

} else {

System.out.println("학교에 다니고 있습니다.");

}

[문제2]
조건문을 활용하여 나이가 17살인 학생의 신상정보를 출력해보자!
조건 1
7살 이하인 경우 = "학교에 다니지 않습니다"
13살 이하인 경우 = "초등학교에 다니고 있습니다"
16살 이하인 경우 = "중학교에 다니고 있습니다"
그 위인경우 = "고등학교에 다니고 있습니다"

int age = 19;

if (age >= 20) {

System.out.println("고등학교를 졸업 했습니다.");

} else {

System.out.println("학교에 다니고 있습니다.");

}

System.out.println("===================================");

int age2 = 20;

if (age <= 7) {

System.out.println("학교에 다니지 않습니다.");

} else if (age <= 13) {

System.out.println("초등학교에 다니고 있습니다.");

} else if (age <= 16) {

System.out.println("중학교에 다니고 있습니다.");

} else {

System.out.println("고등학교에 다니고 있습니다.");

}

[문제3]
Scanner sc = new Scanner(System.in); 을 활용하여 나이를 입력받아 놀이공원의 입장료를 출력하는 프로그램을 작성해보자
조건
8살 미만 = 미취학 아동 / 요금 1,000원
14살 미만 = 초등학생 / 요금 2,000원
20살 미만 = 중, 고등학생 / 요금 2,500원
20살 초과 = 일반인 / 요금 3,000원

마지막 출력문은 "귀하의 입장료는 OOOO원 입니다"

Scanner sc = new Scanner(System.in);

System.out.println("나이를 입력해주세요");

int age3 = sc.nextInt();

int charge;

 

if(age3 < 8) {

charge = 1000;

System.out.println("미취학 아동입니다.");

} else if (age3 < 14) {

charge = 2000;

System.out.println("초등학생 입니다.");

} else if (age3 < 20) {

charge = 2500;

System.out.println("중, 고등학생 입니다.");

} else {

charge = 3000;

System.out.println("일반인 입니다.");

}

System.out.println("귀하의 입장료는 " + charge + "원 입니다.");

 

반응형
반응형

조건문 이란?

● 주어진 조건에 따라 다른 실행이 이루어 지도록 구현

if문 문법

if (조건문) {

수행문; // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨

} // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음

if else 구문

// if else 구문

if (조건문) {

수행문1; // 조건식이 참일 경우 수행됨

} else {

수행문2; // 조건식이 거짓인 경우 수행됨

}

 

조건이 여러개 일때의 if 문

 

가령 점수를 입력받아 학점을 출력하는 프로그램을 만든다고 하면, 조건이 아래와 같다.

1) 90점 이상인 경우 A학점 출력
2) 80점 이상인 경우 B학점 출력
3) 70점 이상인 경우 C학점 출력
4) 70점 미만인 경우 F학점 출력

이처럼 조건이 여러개 일 경우 if else if else 구문을 사용한다.

 

package ch04;

 

import java.util.Scanner;

 

public class MainTest2 {

 

public static void main(String[] args) {

 

// 문제 1

Scanner sc = new Scanner(System.in); // 스캐너 도구 준비완료

 

// 스캐너를 사용하여 성적을 입력받아주세요.

System.out.println("성적을 입력해주세요!");

int score = sc.nextInt(); // R value -> 정수값을 키보드에서 입력 받는다.

// 2. 만약 90점 이상이면 A 출력

// 3. 만약 80점 이상이면 B 출력

// 4. 만약 70점 이상이면 C 출력

// 5. 만약 70점 이하면 F 출력

if (score >= 90) {

System.out.println("당신의 성적은 A학점 입니다.");

} else if (score >= 80) {

System.out.println("당신의 성적은 B학점 입니다.");

} else if (score >= 70) {

System.out.println("당신의 성적은 C학점 입니다.");

} else {

System.out.println("당신의 성적은 F학점 입니다.");

}

}

}

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] do while 문  (0) 2023.07.27
[JAVA] 반복문  (0) 2023.07.27
[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
반응형

package ch03;

 

public class OperatorEx1 {

 

public static void main(String[] args) {

// 1

// 두 수를 덧셈 연산 하여 result1 변수에 담고

// 결과값 30.5를 출력 하세요.

int i = 10;

double d = 20.5;

더보기

double result1 = i + d;

System.out.println(result1);

 

// 2

// result1 변수를 정수형으로 강제 형 변환 해서 출력하세요

더보기

System.out.println((int)result1);

 

// 3

// i 변수의 값을 -1을 뺀 후 출력하세요

// 단, 단항 연산자 사용

더보기

System.out.println(--i);

 

// 4

// d 변수에 값을 -20.5로 출력 하세요

// 단, d 변수에 값을 변경하지 마세요

더보기

System.out.println(-d);

 

// 5

// 변수 i와 d, 관계 연산자를 사용해서 result2 변수를

// 선언하고 변수에 true 값이 담기도록 식을 만들고

// 출력하세요

더보기

boolean result2 = i < d;

System.out.println(result2);

 

int num1 = 10;

int num2 = 30;

 

// 6

// 변수 result3을 선언하고

// num1과 num2 변수가 숫자 50보다 큰지 논리 연산자를 사용해서 결과를 담고 출력하세요

더보기

boolean result3 = (num1 > 50) && (num2 > 50);

System.out.println(result3);

 

// 7

// num1과 num2 값 중 큰 수를 삼항 연산자를 사용해서

// max 변수에 값을 담고 출력해주세요

// 단, 선언과 초기화를 동시에 해주세요

더보기

int max = (num1 < num2) ? num2 : num1;

System.out.println(max);

}

 

}

 

출력값

더보기

30.5

30

9

-20.5

true

false

30

반응형
반응형

관계연산자

- 이항연산자

- 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 한다.

- 조건문, 반복문의 조건식으로 많이 사용 됨

논리연산자

- 관계연산자와 혼합하여 많이 사용됨

- 연산의 결과가 true(참), false(거짓)으로 반환됨

논리 연산에서 모든 항이 실행되지 않는 경우(short circuit evaluation)

● 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true

-- > 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음

● 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false

-- > 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음

package ch03;

 

public class MainTest7 {

 

public static void main(String[] args) {

// 핵심정리

// 논리 연산자 ( &&, ||, ! )

// 관계 연산자와 혼합하여 많이 사용한다.

// 연산의 결과는 true, false로 반환된다.

 

int num1 = 10;

int num2 = 20;

// 논리 곱 연산자(&&)는 모든 결과 값이 참이어야 참이 나온다. true

// 하나라도 거짓이 나오면 무조건 거짓이 나온다. false

// 논리곱 연산

boolean flag1 = (num1 > 0) && (num2 > 0); // 앞 연산이 T, 뒤 연산이 T 이므로 논리 곱 출력 값도 True!

System.out.println(flag1);

boolean flag2 = (num1 > 0) && (num2 < 0); // 앞 연산이 T, 뒤 연산이 F 이므로 논리 곱 출력 값은 False!

System.out.println(flag2);

boolean flag3 = (num1 < 0) && (num2 < 0); // 앞 연산이 F, 뒤 연산이 F 이므로 논리 곱 출력 값은 False!

System.out.println(flag3);

 

// 결론

// 논리 곱에서 하나라도 거짓이 있으면 연산의 결과는 false이다.

 

System.out.println("============================");

 

// 논리 합 연산(||)

// 논리 합에서는 하나라도 참이 있으면 연산의 결과는 True이다.

flag1 = (num1 < 0) || (num2 > 0); // 앞 연산은 F, 뒤 연산은 T 논리 합은 하나라도 참이면 참 값이 출력되므로 True

System.out.println(flag1);

// flag2 = T || T -> T

// flag3 = T || F -> T

// flag4 = F || F -> F

flag1 = (num1 > 0) || (num2 > 0); // T || T -> T

System.out.println(flag1);

flag1 = (num1 < 0) || (num2 > 0); // F || T -> T

System.out.println(flag1);

flag1 = (num1 < 0) || (num2 < 0); // F || F -> F

System.out.println(flag1);

}

 

}

package ch03;

 

public class MainTest7_1 {

 

public static void main(String[] args) {

 

// 논리 연산자(논리곱, 논리합)

 

int num1 = 5;

int i = 0;

 

boolean value = ( (num1 = 1 +10 ) < 10 ) && ( ( i = i + 2 ) < 10 );

System.out.println(value); // 논리 곱 기준 앞 연산자가 false 값이므로 뒤 연산자는 확인할 필요없이 false가 출력됨

System.out.println(num1);

System.out.println(i); // 앞 연산이 false 이므로 뒤 연산자를 확인할 필요가 없어서 빠른 평가에 의해 2가 더해지지 않고 0으로 바로 출력

 

// 논리 합

boolean value2 = ((num1 = num1 + 1) > 0) || ((i = 100) < 2000 );

System.out.println(value2);

System.out.println(num1);

System.out.println(i);

 

// 부정 연산자 (!)

// value2 = true

System.out.println(!value2); // value2 값 참을 부정하므로 false

System.out.println(value2);

 

} // end of main

 

} // end of class

조건 연산자

- 삼항연산자

- 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨

- if (조건문)을 간단히 표현할 때 사용할 수 있음

int num1 = (5 > 3) ? 10 : 20; // 조건식이 참이면 10, 거짓이면 20을 num1에 입력

System.out.println(num1);

// 변수의 선언과 초기화

int num2 = (5 < 3) ? 10 : 20;

System.out.println(num2); // 조건식이 거짓이므로 20출력

System.out.println("=================");

System.out.println((5 < 3) ? 10 : 20);

연산자 우선순위

● 가장 높은 순위 연산자는 () [] .

● 가장 낮은 순위 연산자 =

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 반복문  (0) 2023.07.27
[JAVA] if 조건문  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
반응형

사칙연산자

사칙연산자의 종류는 5종류가 있으며 아래와 같다.

연산자 기능 연산 예
+ 두 항을 더한다 5 + 3
- 앞에 있는 항에서 뒤에 있는 항을 뺀다 5 - 3
* 두 항을 곱한다 5 * 3
/ 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구한다 5 / 3
% 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구한다 5 & 3

사칙연산 실습예

package ch03;

 

public class MainTest3 {

 

// 메인함수 - 코드의 시작점 : 메인 쓰레드(일을 하는 작업자)

public static void main(String[] args) {

 

// 산술 연산자 연습

int number1 = 5 + 3;

int number2 = 5 - 3;

int number3 = 5 * 3;

 

int number4 = 5 / 4;

 

int number5 = 5 % 3;

 

System.out.println(number1);

System.out.println(number2);

System.out.println(number3);

System.out.println(number4);

System.out.println(number5);

 

System.out.println("-----------------------------");

 

// 문제

// 1. (12 + 3) / 3 값을 화면에 출력하시오

int number6 = (12 + 3) / 3;

System.out.println(number6);

// 2. (25 % 2) 값을 화면에 출력하시오.

int number7 = 25 % 2;

System.out.println(number7);

 

int number10 = (int) (5.0 / 4.0);

System.out.println("===================");

System.out.println(number10);

 

} // end of main

 

} // end of class

[출력값]

8

2

15

1

2

-----------------------------

5

1

===================

1

복합 대입 연산자

대입 연산자와 다른 연산자가 함께 쓰인다.

연산자 기능 연산 예
+= 두 항의 값을 더해서 왼쪽 항에 대입 num1 += 2;
num1 = num1 + 2; 와 같음
-= 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입 num1 -= 2;
num1 = num1 - 2; 와 같음
*= 두 항의 값을 곱해서 왼쪽 항에 대입 num1 *= 2;
num1 = num1 * 2; 와 같음
/= 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입 num1 /= 2;
num1 = num1 / 2; 와 같음
%= 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입 num1 %= 2;
num1 = num1 % 2; 와 같음

복합 대입 연산자 실습예

package ch03;

 

public class MainTest4 {

 

public static void main(String[] args) {

 

// 복합 대입 연산자

// 대입 연산자와 다른 연산자랑 함께 쓰인다.

 

int num1 = 1;

// num1 = num1 +10;

num1 += 10;

System.out.println(num1);

 

int num2 = 1;

// num2 = num2 + 100;

num2 += 100; // 위 식을 간소화 한것.

System.out.println(num2);

 

int num3 = 1;

// num3 -= 10;

// 위 식을 반대로 풀어서 코드작성

num3 = num3 - 10;

System.out.println(num3);

 

// num1 = num1 * 2;

// 위 식을 복합연산자로 변경하면

num1 *= 2;

System.out.println(num1);

 

// num2 = num2 / 2;

// 위 식을 복합연산자로 변경

num2 /= 2;

System.out.println(num2);

 

// num2 = num2 % 2;

// 위 식을 복합연산자로 변경

num2 %= 2;

System.out.println(num2);

 

} // end of main

 

} // end of class

증감, 감소 연산자

  • 단항 연산자
  • 변수의 값을 1 더하거나 1 뺄때 사용
  • 연산자의 항의 앞에 있는가 뒤에 있는가에 따라 연산 시점의 결과가 달라진다.
  • 문장(statement)의 끝(;)을 기준으로 연산 시점을 생각해야함
연산자 기능 연산 예 (연산자가 앞/뒤에 오는 것에 따라 결과가 달라져요!)
++ 항의 값에 1을 더한다 val = ++num; // 먼저 num 값이 1 증가 후 val 변수에 대입
val = num++; // val 변수에 num 값 대입 후 num 값 1증가
-- 항의 값에 1을 뺀다 val = --num; // 먼저 num 값이 1 감소 후 val 변수에 대입
val = num--; // val 변수에 num 값 대입 후 num 값 1감소

증감, 감소 연산자 예제

package ch03;

 

public class MainTest5_2 {

 

public static void main(String[] args) {

 

// 증감, 감소 연산자 - 모양 : 변수 기준으로 앞에 사용, 뒤에 사용 가능하다. (주의 점은 오직 1만 더하거나 빼는 것)

 

// 1. 증가 연산자가 뒤에 올 경우

int num1 = 10;

num1++;

 

// 응용

int num2 = 10;

int num3;

 

num3 = num2++;

System.out.println(num3);

System.out.println(num2);

 

System.out.println("=================");

 

// 2. 증가 연산자가 앞에 올 경우

 

int num20 = 100;

int num21;

 

num21 = ++num20;

System.out.println(num20);

 

} // end of main

 

} // end of class

package ch03;

 

public class MainTest5_3 {

 

public static void main(String[] args) {

 

// 증감, 감소 연산자 - 모양 : 변수 기준으로 앞에 사용, 뒤에 사용 가능하다. (주의 점은 오직 1만 더하거나 빼는 것)

 

// 1. 감소 연산자가 뒤에 올 경우

int num1 = 10;

num1--;

 

// 응용

int num2 = 10;

int num3;

 

num3 = num2--;

System.out.println(num3);

System.out.println(num2);

 

System.out.println("=================");

 

// 2. 감소 연산자가 앞에 올 경우

 

int num20 = 100;

int num21;

 

num21 = --num20;

System.out.println(num20);

 

} // end of main

 

} // end of class

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] if 조건문  (0) 2023.07.26
[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
반응형

package ex_01;

 

public class Test06 {

 

public static void main(String[] args) {

 

byte result1 = 10 + 20; // 컴파일 단계에서 계산

System.out.println("result1 : " + result1);

 

byte v1 = 10;

byte v2 = 20;

int result2 = v1 + v2; // int 타입으로 변환 후 계산

System.out.println("result2 : " + result2);

 

byte v3 = 10;

int v4 = 100;

long v5 = 1000L;

long result3 = v3 + v4 + v5; // long 타입으로 변환 후 계산

System.out.println("result3 : " + result3);

 

char v6 = 'A';

char v7 = 1;

int result4 = v6 + v7; // int 타입으로 변환 후 계산, A는 65라는 값을 가짐

System.out.println("result4 : " + result4);

System.out.println("result4 : " + (char) result4); // 66의 값을 char로 변환 하면 B로 출력

 

int v8 = 10;

int result5 = v8 / v4;

System.out.println("result5 : " + result5);

 

int v9 = 10;

double result6 = v9 / 4.0;

System.out.println("result6 : " + result6);

 

int v10 = 1;

int v11 = 2;

double result7 = (double) v10 / v11;

System.out.println("result7 : " + result7);

 

}

 

}

출력값

result1 : 30

result2 : 30

result3 : 1110

result4 : 66

result4 : B

result5 : 0

result6 : 2.5

result7 : 0.5

반응형
반응형

주녘의 중간고사 성적은 다음과 같다.

 

국어 80점

수학 99점

영어 96점

 

세 과목의 값의 평균을 실수형과 정수형으로 표현하면?

 

[풀이]


더보기

 

package ex_01;

 

public class Test3 {

 

public static void main(String[] args) {

 

int kor = 80;

int eng = 96;

int math = 99;

 

double avg = (kor + eng + math) / 3.0;

// 3.0으로 나눈 값과 3으로 나눈 값의 결과는 다름 double 이므로 실수값을 입력해야함

 

System.out.println("평균점수(실수형) : " + avg);

System.out.println("평균점수(정수형) : " + (int) avg);

 

}

 

}

출력값

평균점수(실수형) : 91.66666666666667

평균점수(정수형) : 91

반응형
반응형
캐멀(camel) 스타일

코드를 작성할 때 여러 단어를 혼합하여 명명하는 경우, 낙타의 등처럼 대소문자가 섞여있도록 작성하는 스타일을 말한다.

자바 소스 파일명과 변수명을 작성할 때 관례적으로 사용.

 

예를 들면,

 

자바 소스 파일명(클래스명)은 대문자로 시작하는 것이 관례!

 

Weekend.java

MathGrade.java

 

변수명은 소문자로 시작하는 것이 관례!

score

koreanScore

 


요약

 

캐멀스타일 

낙타의 등 처럼 대소문자가 섞여있도록 작성하는 스타일!

클래스명은 대문자로 시작, 변수명은 소문자로 시작하는 것이 관례!

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 산술연산자 (2)  (0) 2023.07.26
[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
[JAVA] 변수와 상수  (0) 2023.07.25
반응형

항과 연산자

1. 항(Operand) : 연산에 사용되는 값

2. 연산자(Operator) : 항을 이용하여 연산하는 기호

 

대입 연산자(Assignment Operator)

- 변수에 다른 변수나 값을 대입하는 연산자

- 이항 연산자 중 우선순위가 가장 낮은 연산자들

- 왼쪽 변수 = 오른쪽 변수(변수 또는 식, 값)

 

package ch03;

 

public class MainTest1 {

 

public static void main(String[] args) {

 

char myA = 'A';

char youerA = 'a';

// 변수를 활용해서 연산을 한다고 실제 변수안에 들어가 있는 값이 변경되는 것은 아니다.

System.out.println((int)myA);

System.out.println((short)myA);

System.out.println("=====================");

System.out.println(myA);

System.out.println("=====================");

// 즉, 값을 변경 하려면 대입 연산자를 활용할 수 있다.

myA = 'B';

System.out.println(myA);

 

// 대입 연산자의 우선 순위는 가장 낮다.

// 연산의 방향은 반드시 오른쪽에서 왼쪽 방향( <------- )으로 간다고 생각.

} // end of main

} // end of class

 

부호 연산자

- 단항 연산자

- 변수의 부호를 유지 하거나(+) 바꿈(-)

- 실제 변수의 부호를 변경하려면 대입 연사자를 사용해야 함

연산식 설명
+ 피연산자 피연산자의 부호 유지
- 피연산자 피연산자의 부호 변경

package ch03;

 

public class MainTest2 {

 

public static void main(String[] args) {

 

// 부호 연산자 ( +, - )

// 단항 연산자이다.

int number = 10;

// 부호 연산자는 메모리 공간에 접근해서 값을 변경하는 것은 아니다.

System.out.println(-number);

System.out.println(number);

// 실제 값을 변경하려면 대입연산자를 사용하여 변경한다.

 

// 문제

// number 변수에 접근해서 현재 값 양수 10을 -10으로 변경코드를 작성하시오.

// 그 값을 출력하면?

// 단 R value 리터럴 값 대신 변수를 사용하시오.

number = -number;

System.out.println(number);

 

} // end of main

 

} // end of class

 

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 산술연산자 (1)  (0) 2023.07.26
[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
[JAVA] 변수와 상수  (0) 2023.07.25
[JAVA] 변수형과 자료형 - 2  (0) 2023.07.25
반응형

형변환에는

1. 묵시적 형 변환(explicit type conversion, 자동형변환)

2. 명시적 형 변환(implicit type conversion, 강제형변환) 이 있습니다.

 

바이트 크기가 작은 자료형에서 -> 큰 자료형으로 형 변환은 자동으로 이루어진다.

 

예를 들어 int 자료형에서 double 자료형으로 형변환은 자동으로 이루어진다.

package ex_01;

 

public class Test01 {

public static void main(String[] args) {

int a = 100;

double b =  a;

System.out.println(b);

 

}

}

출력값

100.0

반면에 double 자료형에서 int 자료형의 형변환은 강제 형변환을 사용한다.

 

package ex_01;

 

public class Test01 {

public static void main(String[] args) {

 

 

double b2 = 3.141592;

int a1 = (int) b2; // int 형으로 강제형변환 하기 위해 (int) b2 값을 입력한다.

System.out.println(a1);

 

}

}

출력값

3

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 캐멀(Camel) 스타일  (0) 2023.07.25
[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
[JAVA] 변수와 상수  (0) 2023.07.25
[JAVA] 변수형과 자료형 - 2  (0) 2023.07.25
[JAVA] 변수와 자료형  (0) 2023.07.24
반응형

변수란 변하는 수를 의미하며 그의 반대인 상수는 변하지 않는 수를 의미한다.

 

상수의 예로는 원주율(3.14....), 1년은 12개월 등이 있다.

 

프로그래밍에서 상수를  '값을 한번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에 이와 구분하기 위해 상수를

 

다른 이름으로 불러야만 했습니다. 그래서 상수 대신 '리터럴'이라는 용어를 사용합니다.

 

자바에서 상수를 사용하기 위해서는 명령어 final을 사용합니다.

 

final int MAX_NUM = 12;

대부분의 개발자는 final 예약어를 사용시 상수의 이름을 대문자로 쓰고 연결단어가 있을 경우 _를 사용한다

 

위의 예시 처럼 MAX_NUM 이라고 사용을 합니다.

 

그리고 상수는 한번 선언한 값을 다시 다른 값으로 선언할 경우 오류가 발생합니다.

 

package ch02;

 

public class ConstantTest {

 

// 코드의 시작점 - 메인함수

public static void main(String[] args) {

 

// 변수 != 상수 (상수는 변하지 않는 수)

// 예약어 (미리 선점해 놓은 단어) - final 키워드를 사용해서 상수라고 지정한다.

// 권장사항 - 상수를 사용할때는 대문자를 사용하고, 연결의 단어는 _로 사용해서 연결한다.

 

final int MAX_NUM = 12;

 

// 상수란 한 번 초기화 된 값은 변경할 수 없다.

 

System.out.println(MAX_NUM);

 

// MAX_NUM = 100; -> 오류발생 (상수로 선언하였기 때문에 변수로 사용불가)

위의 코드 처럼

 

초기 final int MAX_NUM = 12; 라고 선언을 하고 다음 줄에 MAX_NUM = 100; 이라는 값으로 선언을 할 경우 오류가 발생하게 됩니다.

 

따라서 상수의 값을 변경하기 위해서는 초기에 선언한 값에서 변경해주면 됩니다.

 

위의 설명처럼 상수는 변하지 않는 값이기 때문에 많은 양의 상수의 값을 출력할 경우 초기 선언한 상수값만 변경해주면 되기 때문에 변수처럼 여러번 수정할 필요가 없습니다.

 

final int MIN_NUM;

 

MIN_NUM = 500;

// MIN_NUM = 20000; : 상수는 한 번 초기화된 값은 변경 불가

 

// 상수는 선언한 부분만 변경하면 되기 때문에 여러번 수정할 필요가 없음.

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

System.out.println(MAX_NUM);

위의 코드 처럼 500이라는 값을 300으로 변경하기위해서는 초기에 선언한 상수 MIN_NUM=500; 부분을 MIN_NUM=300; 으로 변경하면 됩니다.

 

출력값

12

12

12

12

12

12

12

12

12

12

12

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 대입연산자와 부호연산자  (0) 2023.07.25
[JAVA] 형변환  (0) 2023.07.25
[JAVA] 변수형과 자료형 - 2  (0) 2023.07.25
[JAVA] 변수와 자료형  (0) 2023.07.24
[JAVA] 이클립스 환경 설정  (0) 2023.07.24
반응형

변수(Variable)란?

● 값(Value)을 저장할 수 있는 메모리의 공간을 의미합니다.

● 이름에서 유추할 수 있듯이 변수는 말 그대로 '변하는 수' 입니다.

변수는 언제 쓰나요?

● 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음 ( ex. 학생의 성적, 합계, 게임의 레벨, 회원 주소 등등...)

● 표현하려는 수에 맞는 데이타 타입(자료형)을 이용하여 변수를 선언

데이터 타입의 종류는 크게 두가지가 있습니다.

첫번째, 기본데이터 타입(Primitive Type)

두번째, 참조타입(Reference Type)

 

1. 기본데이터 타입

정수 자료형의 크기는 다음과 같습니다.

● 32 비트를 초과하는 숫자는 long 자료형으로 처리 (+,- 약 21억)

[long]

8바이트 자료형

숫자의 뒤에 알파벳 L or l을 써서 long 형임을 표시해야합니다.

l = 21000000000L;

예) int num = 12345678900; // 오류

long lnum = 12345678900; //오류

long lnumber = 12345678900L; // ok

실수 자료형의 종류와 크기

float형과 double형이 있습니다.

float 형은 4바이트

double 은 8바이트 입니다.

package ex_01;

 

public class DataType1 {

 

public static void main(String[] args) {

// 실수형을 표현할 때는 기본단위는 double이 적용됨.

double dou = 11.0;

// float fot = 18.0; <-오류발생

float fot = 18.0F; // 접미사 f(F)를 사용해야 한다. 기본단위가 double로 적용되기 때문.

 

System.out.println("double의 값 : "+ dou);

System.out.println("float의 값 : "+ fot);

} // end of main

} // end of class

출력값

double의 값 : 11.0

float의 값 : 18.0

 

문자 자료형

 

문자를 저장하기 위한 변수를 선언할 때 사용됩니다.

char 타입의 변수는 단 하나의 문자만을 저장할 수 있습니다.

문자세트 : 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(charater set)라 한다.

ex ) ASKII, euc-kr, utf-8, utf-16

자바는 문자를 나타내기 위해 전세계 표준인 유니코드를 사용

 

문자형 변수 선언과 사용하기

문자를 위한 데이터 타입 char ch1 = 'A';

내부적으로 숫자로 표현되므로 숫자를 넣어도 문자가 출력될 수 있음.

 

[참고]

● character set: 문자를 숫자로 변환한 값의 세트 encoding: 문자가 숫자로 변환되는 것

● decoding: 숫자에서 다시 문자로 변환되는 것

● ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트

● UNICODE: 전 세계 표준으로 만든 문자 세트

● UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음

● UTF-16: 2바이트로 문자를 표현

package ch01;

 

public class DataType2 {

 

public static void main(String[] args) {

 

// 변수의 선언

char name; // 2byte 공간에 하나의 문자를 담아 둘 수 있다.

char a;

char initial;

 

// 값을 넣어보자.

name = 'A'; // 홑 따옴표를 사용해야 한다. 하나의 문자만 담을 수 있다.

// name = 'AB'; 는 사용불가

} // end of main

 

} // end of class

package ch01;

 

public class CharacterTest {

 

public static void main(String[] args) {

 

char ch1 = '가';

System.out.println(ch1);

System.out.println((int) ch1);

System.out.println((int) '가');

System.out.println("========================");

// 문제 1

// 대문자 A는 정수값 얼마인가? 출력하시오.

// 소문자 a는 정수값 얼마인가? 출력하시오.

System.out.println((int) 'A');

System.out.println((int) 'a');

System.out.println("========================");

// 주의 char 데이터 타입에는 음수값을 대입할 수 없다. (양수만 사용가능)

char ch2 = 97;

char ch3 = 44032;

System.out.println(ch2);

System.out.println(ch3);

System.out.println("========================");

 

// 문제 2

// 개발자라는 단어는 한글자 한글자 정수값 얼마, 얼마 인지 알아보자.

System.out.println((int) '개');

System.out.println((int) '발');

System.out.println((int) '자');

System.out.println("========================");

System.out.println((char) 44060);

System.out.println((char) 48156);

System.out.println((char) 51088);

System.out.println("========================");

// 본인이 알고 싶은 단어의 정수 값이 얼마인지 알아보자.

System.out.println((int) '이');

System.out.println((int) '준');

System.out.println((int) '혁');

System.out.println("========================");

}

 

}

출력값

44032

44032

========================

65

97

========================

a

========================

44060

48156

51088

========================

========================

51060

51456

54785

========================

논리형 자료형

true(참) / false(거짓) 두가지만 나타내고, 1바이트를 사용한다. 값이 존재하는지, 결과가 참인지 거짓인지등을 표현.

package ch01;

 

public class DataType3 {

 

public static void main(String[] args) {

 

 

// 기본 자료형 --> 논리형 (사실을 관찰하고 결과값이 참, 거짓인지 판별할 때)

boolean isMarried = false; // 변수의 선언과 동시에 초기화 함.

System.out.println(isMarried);

 

isMarried = true; // 변수의 값을 변경함.

System.out.println(isMarried);

 

}

 

}

출력값

false

true

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 형변환  (0) 2023.07.25
[JAVA] 변수와 상수  (0) 2023.07.25
[JAVA] 변수와 자료형  (0) 2023.07.24
[JAVA] 이클립스 환경 설정  (0) 2023.07.24
[JAVA] 이클립스(Eclipse) 설치  (0) 2023.07.24

+ Recent posts