1.조건문
-if 문
-if - else 문
-if - else - if - else 문
-조건문과 조건연산자
-switch-case 문
2.반복문
-while문
-do-while 문
-for문
-중첨된 반복문
조건문
- 주어진 조건에 따라 다른 수행문이 실행되도록 프로그래밍 하는 것
- 조건식은 값이 true 나 false 로 나옴
- 결과가 참,거짓으로 판별 되는 식 또는 참이나 거짓의 값을 가지고 있는 변수나 상수를 이용할 수 있음
- if문
- 조건문의 가장 단순한 형식
- 주어진 조건식이 '참'일 경우에 중괄호 안에 있는 수행문을 수행
- if문의 기본형식
if(조건식){
수행문;
}
- if-else 문
- 조건식을 만족하는 경우와 만족하지 않는 경우를 모두 나타낼 때 사용
- 조건식이 '참'일 경우에 if 문 블록 안에 있는 수행문을 수행
- '거짓'일 경우에는 else문 블록 안에 있는 수행문을 수행
- else문에는 '조건식'을 사용하지 않음.
- if-else 문의 기본형식
if(조건식){
수행문1;
}
else {
수행문 2;
}
package ControlFlow;
public class ifExample1 {
public static void main(String[] args) {
int age = 2;
if (age >= 8) {
System.out.println("학교에 다닙니다.");
} else {
System.out.println("학교에 다니지 않습니다.");
}
// 결과: 학교에 다니지 않습니다.
}
}
- if-else if-else 문
- 하나의 경우에 조건이 여러개에 해당하는 경우
- if- else if 문은 하나의 조건을 만족하면 나머지 조건을 비교하지 않고 다음 수행문으로 넘어감.
- if문으로만 이루어진 코드는 각 조건마다 비교.
- if-else if -else 문의 기본 형식
if(조건식 1){
수행문1; //조건식 1이 참일 경우에 수행함
}
else if(조건식2){
수행문2; // 조건식 2가 참일 경우에 수행함
}
else if(조건식 3){
수행문3; //조건식 3이 참일 경우에 수행함
}
else {
수행문 4; //위의 조건이 모두 해당하지 않을 경우에 수행함
}
수행문 5; //if-else if-else문이 끝난 후 수행함
package ifExample;
public class IfExample2 {
public static void main(String[] args) {
int age=9;
int charge=0;
if(age<8) {
charge=1000;
System.out.println("취학 전 아동입니다.");
}
else if(age<14) {
charge=2000;
System.out.println("초등학생입니다.");
}
else if(age<20) {
charge=2500;
System.out.println("중,고등학생입니다.");
}
else {
charge=3000;
System.out.println("일반인입니다.");
}
System.out.println("입장료는"+charge+"원입니다.");
/*결과:
초등학생입니다
입장료는 2000원 입니다.*/
// else if: 이렇지 않으면 ~ 이라는 뜻으로 여러 조건들 중 하나라도 만족하면 나머지는 고려하지 않음
}
}
- 조건문과 조건연산자
- 간단한 if-else 조건문(조건이 하나인 경우)은 조건연산자로 구현할수 있음
package ifExample;
public class Conditionaloperator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max;
// if -else문
if (a > b) {
max = a;
} else {
max = b;
}
System.out.println(max);// 결과:20
// 조건 연산자
max = (a > b) ? a : b;
System.out.println(max);// 결과:20
// 위와 같이 간단한 if-else조건문은 조건 연산자로 구현할 수 있음
}
}
- switch-case문
- 조건식의 결과가 정수 또는 문자열의 값이고 그 값에 따라 수행문이 결정될 때
- if-else if-else문을 대신하여 switch-case문을 사용할 수 있음
- break문은 switch-case문의 수행을 멈추고 빠져나가도록 함.
- 자바7부터 switch-case문의 case값에 문자열 사용 가능
- switch-case문에 수행문이 같으면 case를 병렬하여 작성할수 있다
- switch-case 문의 기본형식
switch(조건){
case 값1: 수행문1;
break;
case 값2: 수행문2;
break;
case 값3: 수행문3;
break;
default: 수행문4;
}
package ifExample;
public class SwitchCase {
public static void main(String[] args) {
int rank=1;
char medalColor;
//if-else if-else 문을 사용
if(rank==1) {
medalColor='G';
}
else if(rank==2) {
medalColor='S';
}
else if(rank==3) {
medalColor='B';
}
else {
medalColor='A';
}
System.out.println(medalColor); //결과:G
//switch-case 문을 사용
switch(rank) {
case 1:medalColor='G';
break;//break문은 switch-case문의 수행을 멈추고 빠져나가도록 함
case 2:medalColor='S';
break;
case 3:medalColor='B';
break;
default:medalColor='A';
}
System.out.println(medalColor);//결과:G
}
}
- 수행문이 같아 case를 병렬로 넣는 예시
package ifExample;
public class SwitchCase2 {
public static void main(String[] args) {
int month=10;
int day;
//switch-case문에서 case들의 수행문이 같을 경우 case들을 병렬하여 작성할 수 있음
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day=31;
break;
case 2:
day=28;
break;
case 4: case 6: case 9: case 11:
day=30;
break;
default:
day=0;
break;
}
System.out.println(month+"월은 "+ day +"일입니다.");//결과:10월은 31일입니다.
}
}
반복문
- 반복문
- 주어진 조건이 만족할 때까지 수행문을 반복적으로 수행함
- while,do-while,for 문이 있음
- 조건의 만족과 반복 가능 여부에 대해 정확한 코딩을 해야함.
- while문
- 조건식이 참인 동안 수행문을 반복해서 수행
- while문의 기본형식
while(조건식){
수행문1;
.....
}; //조건식이 참인동안 수행분 1; 이 있는 블럭을 반복 수행
수행문2;
. .....
package loopExample;
public class WhileExample {
public static void main(String[] args) {
int num =1;
int sum =0;
//while문을 이용하여 1~10까지 더하기
while(num<=10) {
sum+=num;
num++;
}
System.out.println("1부터 10까지의 합은 "+sum+"입니다.");
//결과:1부터 10까지의 합은 55입니다.
}
}
- while문이 무한히 반복되는 경우
- 데몬 서비스를 구현 할 때 무한 반복을 사용
- 웹 서버처럼 끊임없이 돌아가는 시스템을 데몬(daemon)이라고 함.
- 데몬 서비스를 구현 할 때 무한 반복을 사용
while(true){
수행문
}
- do-while문
- 먼저 수행문을 한 번 수행하고 조건식 체크
- 수행문이 반드시 한 번 이상 수행되어야 하는 경우 사용
- do-while문의 기본형식
do{
수행문1;
...
} while(조건식);
수행문2;
...
package loopExample;
public class DoWhileExample2 {
public static void main(String[] args) {
int num =1;
int sum =0;
//do-while 을 이용하여 1~10까지 더하기
do {
sum+=num;
num++;
}while(num<=10);
System.out.println("1부터 10까지의 합은 " + sum + "입니다.");
//결과: 1부터 10까지의 합은 55입니다.
}
}
- for문
- 반복문 중 가장 많이 사용하는 반복문
- 주로 조건이 횟수인 경우에 사용
- 초기화식, 조건식, 증감식을 한꺼번에 작성
- for문의 기본형식
for(초기화식;조건식;증감식){
수행문;
}
- for문의 수행순서
- 초기화문을 한번 수행
- 조건식으로 참거짓 구분
- 수행문 수행
- 증감식 수행
- 증감된 변수로 조건식 수행
- 수행문 수행
- 증감식 수행 이런식으로 조건식이 거짓이 될때까지 반복
package loopExample;
public class forLoop2 {
public static void main(String[] args) {
int num;
int sum =0;
for(num=1;num<=10;num++) {
sum+=num;
}
System.out.println(sum); //결과:55
System.out.println(num);//결과:11
//초기화식 증감식을 생략하고 수행문이나 초기화를 for문 앞에서 할 수 있음
//for(;;;) 이런식으로 된경우도 있는데 이는 while(true) 무한루프와 동일
}
}
- 각 반복문의 쓰임
- while문
- 하나의 조건에 대해 반복수행이 이루어질때 사용
- 조건이 마지 않으면 수행문이 수행되지 않음
- 주로 조건식이 true,false로 나타남
- do-while 문
- 하나의 조건에 대해 반복수행이 이루어질때 사용
- 단, 수행문이 반드시 한번 이상 수행됨
- for문
- 수의 특정범위, 횟수와 관련한 반복수행에서 주로 사용
- while문
- 각 반복문에 무한반복 방법
//while문의 무한반복
while(true){
수행문;
}
//do-while문의 무한반복
do{
수행문;
} while(true);
//for 문의 무한반복
for(;;){
수행문
{
- 중첩된 반복문
- 반복문 내부에 또 반복문이 사용됨
- 대표적으로 구구단이 있음
for문을 이용한 구구단
package loopExample;
public class NestedLoop {
public static void main(String[] args) {
int dan;
int times;
int result;
// for문을 이용한 구구단 출력
for (dan = 2; dan < 10; dan++) {// 2단부터 9단까지 반복하는 외부 반복문
for (times = 1; times < 10; times++) { // 각 단에서 1~9를 곱하는 내부 반복문
result = dan * times;
System.out.println(dan + " X " + times + " = " + result);
}
System.out.println();// 각 단이 끝나는 것을 구분하기 위한 한줄 띄어쓰기
}
}
}
while 문을 이용한 구구단
package loopExample;
public class NestedLoop2 {
public static void main(String[] args) {
int dan = 2;
int times = 1;
int result;
while (dan < 10) {
times=1;//내부에서 외부로 빠져나올때 time가 초기화 되지 않기 떄문에 넣어줘야함.
result=dan*times;
while (times < 10) {
System.out.println(dan + " X " + times + " = " + result);
times++;
}
dan++;
System.out.println();
}
}
}
- continue 문
- 반복문과 함께 쓰이며,
- 반복문 내부 continue 문을 만나면 이후 반복되는 부분을 수행하지 않고 조건식이나 증감식을 수행함
package loopExample;
public class ContinueExample {
public static void main(String[] args) {
int total=0;
int num;
//continue 를 써서 짝수인 경우 수행을 생력하여 홀수의 합을 구하는 예제
for(num=1;num<=100;num++) {
if(num%2==0)
continue;
total+=num;
}
System.out.println("1부터 100까지의 홀수의 합은: "+total+"입니다.");
//결과=1부터 100까지의 홀수의 합은: 2500입니다.
//continue를 쓰지 않고 홀수의 합을 구하는 예제
for(num=0,total=0;num<101;num++) {
if(num%2==1) {
total+=num;}
else {
}
}
System.out.println("1부터 100까지의 홀수의 합은: "+total+"입니다.");
//결과=1부터 100까지의 홀수의 합은: 2500입니다.
}
}
- break문
- 반복문에서 break 문을 만나면 더이상 반복을 수행하지 않고 반복문을 빠져나옴
- 중첨된 반복문 내부에 있는 경우 가장 가까운 반복문 하나만 빠져 나옴
package loopExample;
public class BreakExample {
public static void main(String[] args) {
int sum = 0;
int num = 1;
// 합한 값이 처음으로 100보다 클떄 종료
while (sum < 100) {
sum += num;
num++;
}
System.out.println(sum); // 결과는 105
System.out.println(num); // 결과는 15
// 실제로 계산해보면 14까지 더했을때 합이 105로 100을 넘게되지만 아래에 num++문을 수행하여 15가 나옴
// break문을 사용하면 이를 제어할 수 있음
sum = 0;
num = 1;
while (true) {
sum += num;
if (sum > 100)
break;
num++;
}
System.out.println(sum);
System.out.println(num);
}
}
- 구구단을 짝수단만 출력하라
package loopExample;
public class forLoop3 {
public static void main(String[] args) {
int dan = 2;
int times = 1;
int result;
for (dan = 2; dan < 10; dan++) {
for (times = 1; times < 10; times++) {
if (dan % 2 == 1) {
continue;
}
result = dan * times;
System.out.println(dan + " X " + times + " = " + result);
}
if (dan % 2 == 1) {
continue;
}
System.out.println();
}
}
}
'Java > Doit!자바프로그래밍입문_개념정리' 카테고리의 다른 글
Java 입문 기초 정리_상속과 다형성 (0) | 2024.05.03 |
---|---|
Java 입문 기초 정리_ 배열과 ArrayList (0) | 2024.05.02 |
Java 입문 기초 정리_ 클래스와 객체 1 (0) | 2024.04.29 |
Java 입문 기초 정리용_자바의 여러 가지 연산자 (0) | 2024.04.25 |
Java 입문 기초 정리용_변수와 자료형 (0) | 2024.04.24 |