티스토리 뷰
자바에서 제어문이란?
--> 순서에 따라서가 아닌 필요에 따라서 조건이 만족되면 문장의 실행 순서를 변경할 수 있는 기능이 제공. 조건문과 반복문으로 나뉜다.
1. 조건문 - 조건에 따라서 여러개의 실행 경로 가운데 하나를 실행
반복문 - 조건에 따라서 여러개의 같은 처리를 반복
대표적인 조건문 - if - else
if (조건식)
문장1; -> 조건식이 true일 경우 실행
else
문장2; --> 조건식이 false일 경우 실행
else문이 생략 될 수 있으며 이 경우를 if-then구조라고 한다.
복합문
(compound statement)
중괄호를 이용하여 문장들을 그룹핑 하는 것
블록 이라고도 한다
단일문 대신 들어 갈 수 있다 .
먼저 조건문 부터 볼 것이다. 아래의 예시를 보자
(이전 게시글과 마찬가지로 출력된 결과값은 파란색으로 표시하였으니 결과값을 보면서 코딩하도록 하자)
예시 1)
import java.util.Scanner;
//제어문
public class Exam_01 {
public static void main(String[] args) {
final int rate = 5000;
int pay;
int hours;
Scanner input = new Scanner(System.in);
System.out.println("시간을 입력하세요");
hours = input.nextInt();
if (hours >8)
pay = rate * 8 +(int)(1.5*rate*(hours-8));
else
pay = rate * hours;
System.out.printf("임금은 %d입니다.\n",pay);
}
}
시간을 입력하세요
5
임금은 25000입니다.
연속적인 if문
다음 예제는 입력한 금액의 많고 적음에 따라 적용하는 세율이 달라지는 것을 구현한다.
예제 2)
import java.util.Scanner;
public class Exam_02 {
public static void main(String[] args) {
int income;
int tax;
System.out.println("과세 표준 금액을 입력하시요");
Scanner input = new Scanner(System.in);
income = input.nextInt();
if (income <= 1000)
tax = (int)(0.09*income);
else if (income <= 4000)
tax = (int)(0.18*income);
else if (income <8000)
tax = (int)(0.27*income);
else
tax = (int)(0.36*income);
System.out.println("소득세는"+tax+"입니다");
}
}
switch문 - if 문과 비슷한 문법
예제 3)
import java.util.Scanner;
public class Exam_03 {
public static void main(String[] args) {
int number;
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요:");
number = sc.nextInt();
switch(number) { //if문에 해당되는 조건식의 일부라고 생각하면 된다.
case 0:
System.out.println("없음");
break;
case 1:
System.out.println("하나");
break;
case 2:
System.out.println("둘");
break;
default: //앞의 조건식이 해당되지 않을 때 사용된다.
System.out.println("많음");
break;
}
}
}
다른 예제를 살펴보자
예제 4)
public class Exam_04 {
public static void main(String[] args) {
String month = "Febuary";
int monthNumber;
switch(month) {
case "January":
monthNumber = 1;
break;
case"Febuary":
monthNumber = 2;
break;
case"March":
monthNumber = 3;
break;
default:
monthNumber = 0;
break;
}
System.out.println(monthNumber);
}
}
breack문을 쓰지 않아도 된다. 고의적으로 break문을 안쓰는 경우를 살펴보자
이 경우 if 문에서 복수의 조건을 or로 처리하는 것과 같다.
예제를 살펴보자
예제 5)
import java.util.Scanner;
public class Exam_05 {
public static void main(String[] args) {
int month;
int year = 2009;
int days = 0;
System.out.println("일수를 알고싶은 달을 입력하세요");
Scanner scan = new Scanner(System.in);
month = scan.nextInt();
switch(month) {//break문이 고의적으로 생략되었다
case 1: case 3: case 5: case 7:
case 8: case 10: case 12:
days = 31;
break;
case 4: case 6: case 9: case 11://break문이 고의적으로 생략되었다.이 경우 if 문에서 복수의 조건을 or로 처리하는 것과 같다.
days = 30;
break;
case 2:
if(((year % 4 ==0) && (year % 100 != 0) || (year % 400 ==0)))
days = 29;
else
days = 28;
break;
default:
System.out.println("월이 잘못되었습니다");
break;
}
System.out.println("월의 날수는"+days);
}
}
스위치문 실습
import java.util.Scanner;
public class Exam_08 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1,2,5 중 마음에 드는 번호를 선택하세요.과일을 보여드립니다");
int fruit = sc.nextInt();
switch(fruit) {
case 1:
System.out.println("사과");
break; // case 1을 만족 후 시스템 종료.
case 2:
System.out.println("배");//break문이 없으므로 다음 break까지 수행된다
case 5:
System.out.println("바나나");
break;//case5 만족 후 바나나를 출력 후 스위치문 종료
default:
System.out.println("그냥 과일");//1,2,5가 아닌 다른 숫자를 입력 받으면 출력된다
}
}
}
if - else 실습으로 넘어가 보자
실습 1)
import java.util.Scanner;
public class Exam_06 {
public static void main(String[] args) {
//사용자로 부터 정수를 입력받아 n에 저장한다.
//변수 n의 값이 100보다 크거나 같으면 “large",
//100보다 작으면 ”small"을 출력하는
//if-else 문을 작성하라.
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하세요:");
int number = sc.nextInt();
if (number >= 100)
System.out.println("large");
else
System.out.println("small");
}
}
실습 2)
import java.util.Scanner;
public class Exam_07 {
public static void main(String[] args) {
//사용자로 부터 컵 사이즈에 해당하는 정수를 입력받아 n에 저장한다.
//입력받은 수가 100ml미만은 small,
//100ml이상 200ml미만은 medium,
//200ml 이상은 large라고 출력하는 연속적인 if-else 문을 작성하시오.
Scanner sc = new Scanner(System.in);
System.out.println("컵 사이즈를 입력하세요");
int cupSize = sc.nextInt();
if(cupSize <100)
System.out.println("small");
else if(cupSize >100 && cupSize < 200)
System.out.println("medium");
else if(cupSize >= 200)
System.out.println("large");
}
}
실습 3) 3개의 숫자를 입력 받아서 크기순으로 정렬한 것을 출력하는
프로그램을 작성하라.이것은 두가지를 포스팅 한다. 첫번째는 내가, 두번째는 강사님이 주신 답안이다.
1) 내가 짠 코드
import java.util.Scanner;
public class Exam_10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수를 입력하세요:");
int num1 = sc.nextInt();
System.out.print("두번째 정수를 입력하세요");
int num2 = sc.nextInt();
System.out.print("세번째 정수를 입력하세요");
int num3 = sc.nextInt();
if (num1 > num2 && num2 > num3)
System.out.println(""+num1+" "+ num2+" "+ num3 +" ");
else if (num1 >num3 && num3 > num2)
System.out.println(""+num1+" "+ num3+" "+ num2 +" ");
else if(num2>num1 && num1 > num3)
System.out.println(""+num2+" "+ num1+" "+ num3 +" ");
else if(num2 > num3 && num3 >num1)
System.out.println(""+num2+" "+ num3+" "+ num1 +" ");
else if(num3 > num1 && num1 >num2)
System.out.println(""+num3+" "+ num1+" "+ num2 +" ");
else if(num3 > num2 && num2 >num1)
System.out.println(""+num3+" "+ num2+" "+ num1 +" ");
}
}
2) 강사님이 주신 모범코드
package day09;import java.util.Scanner;public class day09_01 {public static void main(String[] args) {int x, y, z, min;Scanner scan = new Scanner(System.in);System.out.print("정수를 입력하세요");x = scan.nextInt();System.out.print("정수를 입력하세요");y = scan.nextInt();System.out.print("정수를 입력하세요");z = scan.nextInt();if( x < y ){if( x < z ){if( y < z )System.out.println(x+" "+y+" "+z);elseSystem.out.println(x+" "+z+" "+y);}else {if( y < x )System.out.println(z+" "+y+" "+x);elseSystem.out.println(z+" "+x+" "+y);}}else {if( y < z ){if( x < z )System.out.println(y+" "+x+" "+z);elseSystem.out.println(y+" "+z+" "+x);}else {if( y < x )System.out.println(z+" "+y+" "+x);elseSystem.out.println(z+" "+x+" "+y);}}}}
'빅데이터&자바(국가전략프로그램)' 카테고리의 다른 글
2017_10_30_반복문_while문, for문 (0) | 2017.10.30 |
---|---|
자바 if-else 그리고 switch문 (0) | 2017.10.27 |
2017_10_25 자바 연산자 코딩 (0) | 2017.10.25 |
2017_10_24 자바 기본 코딩 (0) | 2017.10.24 |
자바다운로드(오라클JDK,이클립스) (0) | 2017.10.23 |
- Total
- Today
- Yesterday
- 국가전략
- 자바
- 오라클
- EBS mount
- 자바초보
- 스위치문
- 자바반복문
- 프로그래밍
- aws ec2 타입 변경
- Java
- 국가전략프로그램
- 제어문
- aws ec2 type
- AWS
- ec2 ebs
- ebs mount 설정
- 자바코딩
- 인스턴스 타입 변경
- 자바while문
- awss 인스턴스 타입 변경
- Switch
- 자바for문
- ec2타입변경
- ec2타입 변경
- if-else
- 자바기초코딩
- 코딩
- 자바프로그래밍
- 아마존웹서비스
- 빅데이터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |