이전 내용
자바 언어의 자료형
- 정수형: int, 실수형(4byte): float, 실수형(8byte): double
- 논리형: boolean, 문자형: char
- 문자열형은 일반적인 자료형이 아니라, 클래스 객체임.
- 반드시 String(첫글자 대문자) 으로 선언해야 함. (String은 특수한 형태의 자료형이기 때문에)
변수 처리를 통한 계산
변수에는 무조건 값이 하나만 들어갈 수 있으며, 여러 값이 들어가기 위해서는 배열을 사용한다.
package ex;
public class Sample01 {
public static void main(String[] args) {
// 문자열 변수 생성하고 상수에 문자열 저장
String str = "사과";
// 정수형 변수 생성하고 상수에 100 저장
int num1 = 100;
// 실수형 변수 생성하고 상수에 1250.5 저장
float num2 = 1250.5f;
// 출력: 소비자 A씨가 사과를 100개 구입하려고 하는데,
// 사과 1개당 25.5원씩 판매한다고 했을 때 총 구입 가격
float num3 = (float)num1 * (float)num2;
// 출력 형식: 소비자 A씨가 25.5원 짜리 사과를 100개 구입했고,
// 총 구입 금액은 000원이다.
System.out.println("소비자 A씨가 "+num2+"짜리 "+str+"를 "+num1+"개 구매했고, 총 구입 금액은"+num1*num2+"원이다." );
System.out.println("소비자 A씨가 "+num2+"짜리 "+str+"를 "+num1+"개 구매했고, 총 구입 금액은"+num3+"원이다." );
}
}
▶ 총 구입가격을 나타내는 변수 num3의 경우, 정수와 실수를 곱한 값을 출력하므로, 강제 형 변환이 필요하다.
- num3 변수를 int로 설정할 경우, 'Type mismatch: cannot convert from flaot to int' (실수형을 정수형으로 전환할 수 없음) 라는 오류 메시지가 뜬다.
- num2 변수의 경우, 이미 float으로 자료형이 설정되었으므로 (float)을 적을 필요는 없다. ▶ float num3 = (float)num1 * num2
현재 코드에는 주석이 있어, 변수명을 num1, num2... 로 설정해도 무방하나, 이왕이면 변수명을 통해 어떤 값인지 유추할 수 있도록 해주는 것이 좋다.
// 문자열 변수 생성하고 상수에 문자열 저장
String fruit = "사과";
// 정수형 변수 생성하고 상수에 100 저장
int ea = 100;
// 실수형 변수 생성하고 상수에 1250.5 저장
float price = 1250.5f;
// 출력: 소비자 A씨가 사과를 100개 구입하려고 하는데,
// 사과 1개당 25.5원씩 판매한다고 했을 때 총 구입 가격
float total = (float)ea * price;
// 출력 형식: 소비자 A씨가 25.5원 짜리 사과를 100개 구입했고,
// 총 구입 금액은 000원이다.
System.out.println("소비자 A씨가 " +price+ "원짜리 "+ fruit +"를 "
+ ea +"개 구매했고, 총 구입 금액은 " + ea * price + "원이다." );
System.out.println("소비자 A씨가 " +price+ "원짜리 "+ fruit +"를 "
+ ea +"개 구매했고, 총 구입 금액은 " + total + "원이다." );
// \n: 개행문자 > 출력형식에 사용하는 특수문자
System.out.println("소비자 A씨가 " +price+ "원짜리 "+ fruit +"를 "
+ ea +"개 구매했고, \n총 구입 금액은 " + total + "원이다." );
▶ \n 개행문자를 넣어서 줄바꿈을 할 수도 있다.
반복문
while 문, for 문
[while문]
조건문이 참인 동안 while 문이 수행할 문장들을 반복하여 수행한다.
package ex;
public class Sample02 {
public static void main(String[] args) {
// 변수 선언 및 초기화
int a = 0;
//while 문(반복문)
while(a<10) { //1
a++; //2
System.out.println(a); //3
}
}
}
반복문은 계산이 돼야 하므로, 정수형이나 실수형의 숫자만 된다.
- 비교연산자: <, > (작다, 크다), == (같다), != (같지 않다), >= (크거나 같다), <=(작거나 같다)
- 1: a가 10보다 작지 않을 때까지, 2: a 변수를 1씩 증가시켜서 3: 출력하시오
- a가 10보다 작지 않을 때까지 1 2 3 의 과정을 반복하여 생성된 값을 출력하고, a가 11이 되면(괄호 안의 결과가 false가 되면) 반복문을 빠져 나온다.
반복문으로 변하는 변수 앞에 변하지 않는 값을 추가하여 반복문을 실행할 수도 있다.
System.out.println("어린이"+a);
반대로 값을 작게하려면 감소 연산자(--)를 사용할 수 있다.
// 10에서 0까지 거꾸로 출력하게 하기
// 변수 선언 및 초기화
int a = 10;
System.out.println(a); // 10 출력
// while 반복문
while(a>0) { // a가 0보다 클 때까지
a--; // 1씩 감소
System.out.println(a);
- 감소할 때는 조건문에 '크게'를 사용해야 한다.
또한, 10이 반복문 안에서 나오게 하려면 아래와 같이 코드를 수정할 수 있다.
int a = 10;
// while 반복문
while(a>=0) {
System.out.println(a);
a--;
}
※ 줄바꿈을 하지 않으려면 다음과 같이 할 수 있다.
System.out.print(a + ",");
a--;
[for문]
// for문(반복문)
for(int i=1; i<=10; i++) {
System.out.println(i);
}
- for문 형식
for(변수 선언 및 초기화; 조건문; 증감값;) { 실행문 }
★ while문과 for문을 사용하여 1부터 100까지의 숫자 중 짝수만 나타내기
public static void main(String[] args) {
// 1부터 100까지의 정수 중에서 짝수만 출력
int a = 0;
while(a<100) {
a = a + 2;
System.out.println(a);
}
System.out.println(); // 빈줄
for(int b=2; b<=100; b = b +2) {
System.out.println(b);
}
}
★ Do-While: 조건식을 검사하기 전에 한번 이상은 무조건 실행
변수 선언 및 초기화;
do
명령문
while (조건);
int i = 0;
do {
System.out.println("안녕!");
i++;
} while (i < 5);
★ 이중 반복문: 반복문의 중첩
// 이중 반복문
// i가 2보다 작다는 조건을 만족하는 동안 총 2회 명령문 반복 실행
for (int i = 0; i < 2; i++) {
// j가 3보다 작다는 조건을 만족하는 동안 총 3회의 명령문 반복 실행
for (int j = 0; j < 3; j++) {
System.out.println("안녕!");
} // 명령문 3회를 2번 실행 (3*2) 총 6번 실행
}
break, continue
[break: 반복문의 탈출]
for (int i=0; i<5; i++) {
if (i==3)
break;
System.out.println("안녕!");
}
▶ i가 5보다 작은 동안 "안녕!" 출력 (총 5회 출력).
그러나 i가 3이 될 경우 break(반복문 탈출) 조건을 집어넣어 총 3회의 "안녕!" 출력
[continue: 반복문 건너 뛰기]
// continue: 반복문 건너 뛰기
for (int i=0; i<5; i++) {
if (i==2)
continue; // i가 2일 때는 명령문 실행하지 않고 다음 회차로 넘어감
System.out.println("안녕!");
}
다음 내용
'프로그래밍 및 기타 > Java' 카테고리의 다른 글
[Java] 자바 기초 - 배열 (0) | 2025.01.07 |
---|---|
[Java] 25년 1월 8일 자바 기초 - 문자열 (0) | 2025.01.07 |
[Java] 25년 1월 7일 - 자바 기초(조건문, scanner) (0) | 2025.01.07 |
[Java] 25년 1월 2일 - 자바 기초 (변수, 연산자) (0) | 2025.01.02 |
[Java] Java 개념, Java를 위한 프로그램 설치 (1) | 2024.12.31 |