본문 바로가기
원.더.풀 프로젝트/JAVA

원더풀 프로젝트_Java3

by _JMY_ 2020. 6. 15.

 

 

# 제어문(control flow statements)

 

: 자바 프로그램이 원하는 결과를 얻기 위해서는 프로그램의 순차적인 흐름을 제어해야만 할 경우가 생긴다. 이 때 사용하는 명령문을 제어문이라고 하며, 이러한 제어문에는 조건문, 반복문 등이 있다. 이러한 제어문에 속하는 명령문들은 중괄호({})로 둘러싸여 있으며, 이러한 중괄호 영역을 블록(block)이라고 한다. (한 줄짜리는 중괄호 생략 가능하다.)

 

# 조건문(conditional statements)

 

: 조건문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다. 조건문 중에서도 가장 기본이 되는 명령문은 바로 if 문이다.

if (조건식) {

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

}

 

출처 : http://tcpschool.com/java/java_control_condition

 

* if문

 

1. if문

: if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다.

 

⇒ 활용예시

package blog;

import java.util.Scanner;

public class Wonderful21 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.print("한 개의 숫자를 입력 : ");
		int count = exp.nextInt();
		if(count <0);
			System.out.println(count+"은(는) 음수입니다.");

	}

}
package blog;

import java.util.Scanner;
public class Wonderful22 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.print("성적을 입력하세요 : ");
		int grade = exp.nextInt();
		if(grade>=90) {
			System.out.println("축하합니다.");
			System.out.println("A학점 입니다.");
		}
		System.out.println("수고하셨습니다.");
	}

}

 

 

2. if ~ else

: if 문과 함께 사용하는 else 문은 if 문과는 반대로 주어진 조건식의 결과가 거짓(false)이면 주어진 명령문을 실행한다.

if (조건식) {

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

} else {

    조건식의 결과가 거짓일 때 실행하고자 하는 명령문;

}

 

⇒ 활용예시

package blog;

import java.util.Scanner;
public class Wonderful23 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.print("성적을 입력하세요 : ");
		int grade = exp.nextInt();
		if(grade>=90) {
			System.out.println("축하합니다.");
			System.out.println("A학점 입니다.");
		}
		else {
			System.out.println("A학점 취득 실패.");
		}
		System.out.println("수고하셨습니다.");
	}

}

 

⇒ 활용예시

package blog;

import java.util.Scanner;
public class Wonderful24 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.print("성적을 입력하세요 : ");
		int grade = exp.nextInt();
		if(grade>=90) {
			System.out.println("A학점");
		}else if(grade>=80) {
			System.out.println("B학점");
		}else if(grade>=70) {
			System.out.println("C학점");
		}else if(grade>=60) {
			System.out.println("D학점");
		}else {
			System.out.println("F학점");
			System.out.println("학점 취득 실패");
		}
			}
}
package blog;
import java.util.Scanner;
public class Wonderful25 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("숫자를 입력 : ");
		int count = exp.nextInt();
		if(count<0) {
			System.out.print("입력된 수"+count);
			System.out.println("은(는) 음수입니다.");
		}else if(count==0) {
			System.out.println("입력된 수는 0 입니다.");
		}else {
			System.out.print("입력된 수 "+count);
			System.out.println("은(는) 양수입니다.");
		}
	}

}
package blog;
import java.util.Scanner;
public class Wonderful26 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("성적을 입력하세요 : ");
		int score = exp.nextInt();
		
		if(score>=80) {
			System.out.println("우수 학점군에 속합니다.");
			if(score>=90) 
				System.out.println("A학점 입니다.");
			else 
				System.out.println("B학점 입니다.");
		}
		else {
			if(score>=60) {
				System.out.println("보통 학점군에 속합니다.");
				if(score>=70)
					System.out.println("C학점 입니다.");
				else
					System.out.println("D학점 입니다.");
			}
		else
			System.out.println("학점 취득 실패");
			
		}
	}
}


 

 

+) 선택문-조건식

 

⇒ 활용예시

package blog;
import java.util.Scanner;
public class Wonderful27 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("월을 입력하세요 : ");
		int month = exp.nextInt();
		
		if(3<= month&&month<=5) {
			System.out.println("봄 입니다.");
		}else if(6<=month&&month<=8) {
			System.out.println("여름 입니다.");
		}else if(9<=month&&month<=11) {
			System.out.println("가을 입니다.");
		}else if(1== month || month ==2 || month==12) {
			System.out.println("겨울 입니다.");
		}else {
			System.out.println("해당되는 계절이 없습니다.");
		}
	}

}

 

 

* switch문

 

: switch 문은 if ~ else 문과 마찬가지로 주어진 조건 값의 결과에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문이다. 이러한 switch 문은 if ~ else 문보다 가독성이 더 좋으며, 컴파일러가 최적화를 쉽게 할 수 있어 속도 또한 빠른 편이다. 하지만 switch 문의 조건 값으로는 int형으로 승격할 수 있는(integer promotion) 값만이 사용될 수 있다. (case 절로 다중선택 가능.)

- 즉, 자바에서는 swich 문의 조건 값으로 byte형, short형, char형, int형의 변수나 리터럴을 사용할 수 있다. 또한, 이러한 기본 타입에 해당하는 데이터를 객체로 포장해 주는 래퍼 클래스(Wrapper class) 중에서 위에 해당하는 Byte, Short, Character, Integer 클래스의 객체도 사용할 수 있다. 그리고 enum 키워드를 사용한 열거체(enumeration type)와 String 클래스의 객체도 사용할 수 있다. 따라서 switch 문은 if / else 문보다는 사용할 수 있는 상황이 적다.

 

switch (조건 값) {

    case 값1:

        조건 값이 값1일 때 실행하고자 하는 명령문;

        break;

    case 값2:

        조건 값이 값2일 때 실행하고자 하는 명령문;

        break;

    ...

    default:

        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;

        break;

}

 

+) default 절은 조건 값이 위에 나열된 어떠한 case 절에도 해당하지 않을 때만 실행된다. 이 절은 반드시 존재해야 하는 것은 아니며 필요할 때만 선언할 수 있다.

 

⇒ 활용예시

package blog;
import java.util.Scanner;
public class Wonderful28 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("월을 입력 하세요 : ");
		int month = exp.nextInt();
		String MtoS;
		switch(month) {
		case 12:
		case 1:
		case 2://하나의 case문과 같은 효과
			MtoS = "겨울 입니다.";
			break;
		case 3:
		case 4:
		case 5:
			MtoS = "봄 입니다.";
			break;
		case 6:
		case 7:
		case 8:
			MtoS = "여름 입니다.";
			break;
		case 9:
			System.out.println("멋진 9월과 ");
		case 10:
			System.out.println("아름다운 10월과 ");
		case 11:
			System.out.println("낙엽의 11월은 ");
			MtoS = "가을 입니다.";
			break;
		default://1~12의 숫자가 아닐 경우 수행
			MtoS = "1~12월을 벗어난 달입니다.";
			break;
		}
		System.out.println(MtoS);
	}

}

 

⇒ 활용예시

package blog;

public class Wonderful29 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		char c = 'A';
		//char c ='a'
		switch(c){
		case 'A':
		case 'B'://case문의 값으로 문자 지정
			System.out.println("우수한 성적입니다.");
			break;
		case 'C':
		case 'D'://case문의 값으로 문자 지정
			System.out.println("분발하세요.");
			break;
		case 'F':
			System.out.println("많은 노력이 필요합니다.");
		default:
			System.out.println("정확한 성적이 아닙니다.");
			
		}
	}
}

 

 

# 반복문(iteration statements)

 

: 반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문이다. 프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많으므로, 가장 많이 사용되는 제어문 중 하나다.

 

* while문

 

: while 문은 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행한다. while 문은 우선 조건식이 참(true)인지를 판단하여, 참이면 내부의 명령문을 실행한다. 내부의 명령문을 전부 실행하고 나면, 다시 조건식으로 돌아와 또 한 번 참인지를 판단하게 된다. 이렇게 조건식의 검사를 통해 반복해서 실행되는 반복문을 루프(loop)라고 한다.

if (조건식) {

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

}

 

⇒ 활용예시

package blog;
import java.util.Scanner;
public class Wonderful30 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("원하는 단을 입력하세요 : ");
		int dan = exp.nextInt();
		int x = 1;
		while(x<=9) {
			System.out.println(dan+"*"+x+"="+dan*x);
			x++;
		}
	}

}

 

 

* do-while문

 

: while 문은 루프에 진입하기 전에 먼저 조건식부터 검사한다. 하지만 do / while 문은 먼저 루프를 한 번 실행한 후에 조건식을 검사한다. 즉, do / while 문은 조건식의 결과와 상관없이 무조건 한 번은 루프를 실행한다.

do {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

} while (조건식);

 

⇒ 활용예시

package blog;
import java.util.Scanner;
public class Wonderful31 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		int month;
		do {
			System.out.println("월을 입력하세요(끝내려면 0을 입력하세요.) : ");
			month = exp.nextInt();
			
			if(3<= month&&month<=5)
				System.out.println("봄 입니다.");
			else if(6<=month&&month<=8)
				System.out.println("여름 입니다.");
			else if(9<=month&&month<=11)
				System.out.println("가을 입니다.");
			else if(1== month || month ==2 || month==12)
				System.out.println("겨울 입니다.");
			else if(month !=0)
				System.out.println("잘못된 입력 : 해당되는 계절이 없습니다.");
			} while(month!=0);
				System.out.println("감사합니다.");
				
	}
}


 

 

* for문

 

: for 문은 while 문과는 달리 자체적으로 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문이다. 따라서 while 문보다는 좀 더 간결하게 반복문을 표현할 수 있다.

for (초기식; 조건식; 증감식) {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

}

 

⇒ 활용예시

package blog;
import java.util.Scanner;
public class Wonderful32 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("정수 입력 : ");
		int num = exp.nextInt();
		System.out.println(num+"의 약수 : ");
		for(int i=1;i<=num;i++) {
			if(num%i==0) {//i로 나눠서 나머지가 없으면 약수 출력.
				System.out.println(i+" ");
			}
		}
	}

}

 

출처 : http://tcpschool.com/java/java_control_loop

 

 

* 반복문의 비교와 중첩

 

⇒ 활용예시

package blog;

public class Wonderful33 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	int i =2;
	while(i<=9) {
		System.out.println("***"+i+"단"+"***");//단 제목 출력
		for(int j=1;j<=9;j++) {
			System.out.println(i+"*"+j+"="+i*j);
		}
		System.out.println();//아무것도 안쓴 게 맞음.
		i++;
	}
	}

}

 

⇒ 활용예시 (while-> for 버전으로)

package blog;

public class Wonderful34 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i =2;
		for(i=2;i<=9;i++) {
			System.out.println("***"+i+"단"+"***");
			
			for(int j=1;j<=9;j++) {
				System.out.println(i+"*"+j+"="+i*j);
		}
	}
	}
}

 

⇒ 활용예시

package blog;
import java.util.Scanner;
public class Wonderful35 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner exp = new Scanner(System.in);
		System.out.println("원하는 숫자를 입력하세요 : ");
		int num = exp.nextInt();
		int i =1; 
		while(i<=num) {//입력한 만큼 돌아라
			int j =1;
			while(j<=i) {//돌면서 하나씩 증가. 
				//별표를 반복해서 같은 라인에 출력.
				System.out.print("*");
				j++;
			}
			System.out.println();//라인을 바꾼다
			i++;
		}
	}

}

 

 

 

 

'원.더.풀 프로젝트 > JAVA' 카테고리의 다른 글

원더풀 프로젝트_java6  (0) 2020.08.04
원더풀 프로젝트_java5  (0) 2020.07.01
원더풀 프로젝트_Java4  (0) 2020.06.22
원더풀 프로젝트_Java2  (0) 2020.06.01
원더풀 프로젝트_Java1  (0) 2020.05.25

댓글