Java는 이클립스나 intellij 환경에서 실행하는 것이 좋다.

 

지난번 연산자에 대해 배운 것을 간단한 실습으로 복습

 

섭씨 화씨 온도 구하기

- BASE는 변하지 않는 값이므로 final로 선언

- float 값은 값에 .0F 를 붙여준다

- String temp로 문자열을 입력받아서

- Float.parseFloat으로 강제 형변환

 

두 수 중 큰 양수 출력

 

num1 : temp1을 String으로 입력받아서 Integer.parseInt()로 강제 형변환

num2도 마찬가지로 값을 받아서

result에서 삼항 연산자를 통해 num1이 크거나 같으면 num1을 반환하도록 한다.

 

자릿수 합 구하기

 

 

total에

%= : 나머지 저장

10으로 나누고 또 나머지 저장 반복

 


 

조건문

  • if문
  • if-else문
  • if-else if문
  • switch문
  • 중첩 조건문

 

크게 if문과 switch 문이 있다.

실습을 통해 살펴보자.

 

학점 변환하기

 

 

다만 if문을 쓸 때 조건이 많아지면 가독성이 떨어지는데 이때 switch 문을 사용한다.

 

형식

switch(값) {

case 값1 :

 실행문1;
 ...
break; //break은 case문을 구분하는 역할
 case 값2 :
 실행문2;
 ...
 break;
 case 값3 :
 실행문3;
 ...
 break;
default : //어느 case에도 해당되지 않으면 실행. 생략 가능
 실행문n;
}
 
case문에는 콤마, 로 구분해서 여러 값을 사용할 수 있다.

 

switch문의 값으로 입력 가능한 타입은 byte, short, int, char 타입 정수와 문자열 (실수형x)

 

 

+) 중첩 조건문: 조건문 안에 조건문이 있는 것을 말한다.

 

 

 

 


 

반복문

  • for
  • while
  • do-while
 
for (초기화식; 조건식; 증감식)
for (int i = 0; i < 100; i++) {
 System.out.println(”Hello, World!”);
}
 
while은 실행블록{} 에서 초기화식, 조건식, 증감식을 따로 사용하지 않는다.
→ for문은 반복 횟수가 정해진 경우 사용하면 편리하다
while문은 반복 횟수보다는 조건식이 true이면 반복하는 경우에 사용
 
int i = 1;
while(i <= 5) {
 System.out.println(”i = “ + i);
 i++;
}
System.out.println(”while문 밖에서 i의 값 : “ + i);
  }
}

[결과]
i = 1
i = 2
i = 3
i = 4
i = 5
while문 밖에서 i의 값 : 6
 
do while : 무조건 한 번은 실행문을 실행한 후 마지막에 조건식 판별
do {
 실행문;
} while(조건식)
 

중첩 반복문

가장 많이 쓰이는 for문 중첩
 
시계 예제 while문

 

중접반복문 : 내부의 반복문이 실행하기 전에  min을 초기화해주는 것 주의

min= 60이 되면 min=0으로 되돌아가야함

 

 

 

break문과 continue문

 

 

가독성을 위해 무한 루프로 while(true)를 많이 사용 
for(;;)로도 무한 반복 가능
무한 루프는 반드시 break으로 빠져나올 조건이 있어야한다.
break은 가까운 반복문을 종료시킨다.
 
 
break으로 외부 for문 종료시키는 예제

외부 for문에 라벨을 지정해서 특정 반복문을 break 할 수 있다.

 

 

 


continue문

반복문 내에서 실행문을 건너뛸 때 사용
for문에서 continue문을 만나면 for문의 증감식으로 이동
while문은 조건식으로 이동
반복문(...) {
 ...
 continue
 ...
}

 

 

i가 5의 배수 (나머지가 0) 일 때마다 print 함수를 건너뜀

 

 

1부터 자연수를 더해서 최초로 1000이 되게 하는 숫자와 합

 

 

 

 

최대 공약수 구하기

최대 공약수 구하기

 

num1, num2를 입력받아서

작은 수를 num1에, 큰 수를 num2에 저장

num1만큼 반복문 진행 : num1과 num2를 i로 나누어떨어지면 공약수로 출력

if문으로 가장 큰 공약수를 gcd(great common division)에 저장

 

 

자연수에서 100번째 소수 출력
package sec05.ex05;

public class PrimeNumberTest2 {
	public static void main(String[] args) {	//자연수에서 100번째 소수 출력
		
		int num = 1, count = 0, count2 = 0;
		
		Outter:
		while(true) {
			count = 0;	//매 숫자마다 count(약수개수)가 초기화되어야한다!!
			for (int i = 1; i <= num; i++) {
				if(num % i == 0) {
					count++;	//약수 개수
				}
				
			}
			
			if(count == 2) {
				count2++;
				}
			
			num++;
			
			if(count2 == 100) {
				System.out.println(num-1);
				break Outter;
				
			}
			
		}
	}

}
헤맸던 부분 :
while문 밖에서 한 번 count(약수 개수) 선언하고 그 뒤로 초기화하지 않으니 이상한 결과가 나온다.
반복할 때 매번 count는 0으로 초기화해주어야 한다.

 

'멀티캠퍼스-JAVA 풀스택 > JAVA' 카테고리의 다른 글

Java 기초(6)- 객체지향(2)  (0) 2025.11.18
Java 기초(5) - 객체 지향  (0) 2025.11.12
Java 기초(4) - 배열  (0) 2025.11.12
JAVA 기초(2)  (1) 2025.10.23
Java 기초 (1)  (0) 2025.08.19

+ Recent posts