제어문(control statement)
대부분 프로그램은 위에서 아래로 한 줄씩 순차적으로 실행되는데(절차식 : batch) 프로그램의 흐름을 바꾸는(제어하는) 기술 문장.
# if 문 : 단순 if 문 : if 문의 조건이 참이면 if 문을 실행하고, 거짓이면 아무 것도 실행하지 않는다.
package Java04;
public class Test01{
public static void main(String[] args){
// TODO Auto-generated method stub
int n =50;
String str = null; // String은 특수한 클래스이다. 초기값은 null이다.
if(n==50) { // ( ) 안은 무조건 True/False의 조건이여야 한다.
str = "n은 50입니다.";
System.out.println(str);
} // { }사이를 code block이라고 하며, 하나(suite)로 작동된다.
if(n!=50) {
System.out.println("n은 50 아닙니다.");
}
}
}
# if ~ else 문 : if 문의 조건이 참이면 if 문을 실행하고, 거짓이면 else 문을 실행한다.
package Java04;
public class Test02{
public static void main(String[] args){
// TODO Auto-generated method stub
int n =49;
String str = null;
if ( ++n >=50) { //이 경우는 n은 1+n이어서 50
str = "n은 50 이상입니다.";
} else {
str = "n은 50 미만입니다.";
}
System.out.println(str);
/* if 조건이 True 이면 else 를 실행하지 않고 코드블럭을 벗어나 출력,
* if 조건이 False 이면 if를 실행하지 않고 else를 출력*/
}
}
# 다중 if문 : 여러 개의 조건 비교가 필요할 경우 if ~ else if ~ else if ~ else
package Java04;
import java.util.Scanner;
public class Test03{
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.print("점수를 입력하세요 : ");
int num = scan.nextInt();
String str = ""; //String 문자열의 초기화
if (num >= 90) {
str = "A";
} else if (num >=80) {
str = "B";
} else if ( num >= 70) {
str = "C";
} else if(num >=60) {
str = "D";
} else {
str = "공부를 좀 하세요..";
}
System.out.println(str); // 아래 두줄은 무조건 출력
System.out.println("수고하셨습니다.");
scan.close();
}
}
■ 예제 풀기 ■
Q1. 출생년도를 입력받고, 30세 이상이면 "어른이 다 되었습니다", 30세 이하면 "아직 청춘입니다"를 보이고, 마지막에 "감사합니다"를 보이시오.
package Java04;
import java.util.Scanner;
public class Q1{
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.print("출생년도를 입력하세요 : ");
int year = scan.nextInt();
int age = (2022-year)+1;
System.out.println(age + "살입니다.");
String str = null;
if (age >=30) {
str = "어른이 다 되었습니다.";
System.out.println(str);
} else {
// str = "아직 청춘입니다."; 생략가능
System.out.println(str);
}
System.out.println("감사합니다.");
}
}
Q2. 나이를 받아서 10세 미만이면 12% 할인, 20세 미만이면 5% 할인, 20세 이상이면 정가로 판매한다.
카드로 결제하면 3% 더 요금을 낸다. 현금은 그대로 계산한다.
물건 값은 A=1000원, B는 1200원, C=1700원이다.
물건 개수를 선택하게 하고, 선택한 물건의 총 계산 금액을 보이고, 나이에 따라서 할인 여부를 결정해서 계산하시오.
package Java04;
import java.util.Scanner;
public class Q2_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.println("A물건의 구매갯수를 입력하세요");
int oA = scan.nextInt();
System.out.println("B물건의 구매갯수를 입력하세요");
int oB = scan.nextInt();
System.out.println("C물건의 구매갯수를 입력하세요");
int oC = scan.nextInt();
System.out.println("나이를 입력하세요");
int age = scan.nextInt();
System.out.println("카드결제면 1 현금이면 2를 입력해주세요");
int ca = scan.nextInt();
float sale ;
float com ;
if (age < 10) {
sale = 0.88f;
} else if (age < 20) {
sale = 0.95f;
} else {
sale = 1;
}
if (ca==1) {
com = 1.03f;
} else {
com = 1;
}
int sum = oA*1000 + oB*1200 + oC*1700;
int pay = (int)(sum*sale*com);
System.out.println("총 금액은 " +sum+ "원 이고 지불하실 금액은 " +pay+ "원 입니다.");
scan.close();
}
}
Q3. 놀이동산 기구를 타기 위해서 아이는 health하고 age는 6세 이상이여야 한다. 혹은 height는 130cm 이어야한다.이 조건에 안 맞으면 보호자 parents를 동방해야한다. 아이의 health(good/bad),age, height 를 입력받고, 조건이 안 맞으면 아이의 parents 여부 확인해서 최종적으로 탑승 여부를 판별하시오.
package Java04;
import java.util.Scanner;
public class Q3_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.println("age를 입력하세요");
int age = scan.nextInt();
System.out.println("height를 입력하세요");
float height =scan.nextFloat();
System.out.println("health를 입력하세요 good=1, bad=2");
int health = scan.nextInt();
String str=null;
if(age>=6 && height>=130 && health==1) {
str="탑승하실수있습니다.";
}else {
System.out.println("parents의 여부 yes=1, no=2");
int parents = scan.nextInt();
if(parents==1) {
str="탑승가능합니다.";
}else
str="탑승 불가능합니다.";
}
System.out.println(str);
scan.close();
}
}
Q4. 윤년은 년도가 4로 나누어 떨어지지만 100으로 나누어 떨어지지 않거나, 혹은 400으로 나누어 떨어지는 해를 말한다. 년도를 입력받아서 윤년 여부를 판단해 보시오.
package Java04;
import java.util.Scanner;
public class Q4_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.println("년도를 입력해주세요");
int year = scan.nextInt();
if ((year % 4 == 0 && year % 100 !=0) || (year % 400 ==0) ) {
System.out.println("당신이 입력하신"+year+"는 윤년입니다.");
}else {
System.out.println("당신이 입력하신"+year+"는 윤년아닙니다.");
}
scan.close();
}
}
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] 배열(Array) (0) | 2022.07.21 |
---|---|
[Java] Switch ~ case 문, For문 (0) | 2022.07.21 |
[Java] 스캐너(Scanner) 예제모음 (0) | 2022.07.20 |
[Java] 연산자 종류 (0) | 2022.07.20 |
[Java] 변수 선언 규칙 (0) | 2022.07.19 |