학습목표
Q) (콘솔로 입력된 i 값) i 해가 윤년인가?
Q) 키와 몸무게가 주어졌을 때 bmi를 구하고, bmi 표의 어디에 속하는 지 구하시오.
학습할 것
if, 산술연산자, 관계연산자, 논리연산자, 중첩 if, Scanner
Q1) 콘솔에서 정수를 입력받아 50 이상이 들어왔으면 '50보다 커'를 출력하시오.
콘솔에서 키보드로 입력한 값을 입력받는 방법으로 Scanner를 쓴다.
Scanner sc = new Scanner(System.in);
이 때 스캐너에서 받아 온 값을 정수형으로 받아줘야 한다.
int jungsu = sc.nextInt();
nextInt() 는 입력한 값에서 정수만 받아온다는 뜻이다.
if 문법의 사용법
if(조건식) { 조건식이 true일때 수행될 문장 }
위 세가지를 활용하면 Q1을 만족하는 소스를 만들 수 있다.
package JavaIF;
import java.util.Scanner;
public class JavaIF {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int jungsu = sc.nextInt();
if(jungsu >= 50) {
System.out.println("50보다 커");
}
}
}
Q2) 입력된 값이 3의 배수, 5의 배수, 3과 5의 배수인지 확인하시오.
산술연산자에는 [ + ] [ - ] [ * ] [ / ] [ % ] 가 있는데
순서대로 더하기, 빼기, 곱하기, 나누기, 나머지라는 의미를 가지고 있다
if ( 24 % 3 == 0) { System.out.println("참입니다.") }
정수 24를 3으로 나눈 나머지의 값이 0이 맞기 때문에 "참입니다." 라는 메시지가 나온다.
만약 if 조건식이 참이 아닐때에는 블럭 { } 안에 있는 문장을 지나쳐가는데
if 문장을 지나쳐가기전에 다시 한번 조건을 묻고 싶을 때 if else와 else를 쓴다
if ( 조건식1 ) { 조건식1이 true일 때 수행할 문장
} else if ( 조건식2 ) { 조건식1에서 false 이고 조건식2가 true일 때 수행할 문장
} else { 조건식1, 조건식2 모두 false일때 수행할 문장 }
else if는 한개 뿐아니라 여러개를 쓸 수 있다.
논리연산자 중 and와 or의 의미를 나타내는 연산자가 있다.
AND연산자 &&
OR연산자 || << 엔터키 위에 \ 원화표시키를 씨프트와 함께 누르면 나온다
이 연산자를 이용해 if ( 조건식 ) 에 이용할 수 있다.
if ( 24 / 3 == 8 && 24 % 3 == 0 ) {
System.out.println("24를 3으로 나눈 몫은 8이고 나머지는 0이다."); }
논리연산자와 중첩 if문을 이용해 Q2를 구할 수 있다.
package JavaIF;
import java.util.Scanner;
public class JavaElseIF {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int jungsu = sc.nextInt();
if (jungsu % 3 == 0 && jungsu % 5 == 0) {
System.out.println("3과 5의 배수이다");
} else if (jungsu % 3 == 0) {
System.out.println("3의 배수이다");
} else if (jungsu % 5 == 0) {
System.out.println("5의 배수이다");
} else {
System.out.println("3과 5의 배수 모두 아니다");
}
}
}
학습할 것을 다 익혔으니 학습목표 두 문제를 풀 수 있게 되었다.
윤년 규칙
- 서력 기원 연수가 4로 나누어 떨어지는 해는 윤년으로 한다. ...
- 서력 기원 연수가 4, 100으로 나누어 떨어지는 해는 평년으로 한다. ...
- 서력 기원 연수가 4, 100, 400으로 나누어 떨어지는 해는 윤년으로 둔다.
package JavaIF;
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println("윤년");
} else {
System.out.println("평년");
}
}
}
package JavaIF;
import java.util.Scanner;
public class Q2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("몸무게(kg)를 입력하시오");
Double kg = sc.nextDouble();
System.out.println("키(m)를 입력하시오");
Double height = sc.nextDouble();
Double bmi = kg / (height*height);
System.out.println(bmi);
if (bmi > 30) {
System.out.println("고도비만");
} else if (bmi > 25) {
System.out.println("비만");
} else if (bmi > 23) {
System.out.println("과체중");
} else if (bmi > 18.5) {
System.out.println("정상");
} else {
System.out.println("저체중");
}
}
}
'Java' 카테고리의 다른 글
JAVA FOR 기본문법 (0) | 2020.11.26 |
---|---|
JAVA while 기본문법 (0) | 2020.11.25 |