if~else문 - 조건문(분기문)
- 조건식이 참이면 조건식이 참인 경우 실행문을 실행하고 if~else 블럭을 빠져 나옴.
- 조건식이 거짓이면 조건식이 거짓인 경우 실행문을 실행하고 if~else 블럭을 빠져 나옴.
형식)
if(조건식) {
조건식이 참인 경우 실행 문장;
}else {
조건식이 거짓인 경우 실행 문장;
}
예문)
[문제] 키보드로부터 입력을 받은 정수값을 5로 나누어서 0으로 떨어지면 "이 정수는 5로 나누어집니다." 라고 출력을 하고, 그렇지 않으면 "이 정수는 5로 나누어지지 않습니다." 라고 화면에 출력하시오.
* 단, 음수값이 입력이 되면, "음수 값이 입력 되었습니다." 라고 출력하시오.
import javax.swing.JOptionPane; //JOptionPane클래스를 사용하기 위해 추가
public class Ex02 {
public static void main(String[] args) {
//1. 키보드로부터 정수를 입력받자.
int num1=
Integer.parseInt(JOptionPane.showInputDialog("정수를 입력하시오")); //입력받은 값 정수형으로 변환
//2. 입력받은 정수가 양수인지 혹은 음수인지 판별
if(num1>0) { //입력받은 정수가 양수인 경우
if(num1%5==0) {
System.out.println("이 정수는 5로 나누어집니다.");
}else {
System.out.println("이 정수는 5로 나누어지지 않습니다.");
}
}else { //입력받은 값이 음수인 경우
System.out.println("음수 값이 입력되었습니다.");
}
}
}
입력받은 정수가 양수인지, 음수인지부터 판별하였고,
양수인 경우, 또 다른 if문을 포함시켜 5로 나누어 떨어지는지 판별하였다.
이를 중첩 if문이라 함.
실행
번외)
*Scanner 클래스를 이용하여 키보드로 값 입력받기
[문제] 키보드로 입력 받은 숫자가 홀수인지 짝수인지 출력해보시오. - scanner 클래스를 이용해보기.
/*
* [문제] 키보드로 입력 받은 숫자가 홀수인지 짝수인지 출력해보시오.
*/
import java.util.Scanner; //키보드로 입력받기 위한 준비 작업, import을 시켜줌
public class Ex05 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); // system.in은 표준입력장치 (ex:키보드)
System.out.print("정수를 입력하세요");
int num=sc.nextInt(); //화면을 통해 입력받은 숫자를 num에 저장
if(num%2==0) {
System.out.println(num + "은 짝수입니다.");
}else {
System.out.println(num + "은 홀수입니다.");
}
//스캐너를 사용하면 종료후에는 닫아주는 게 좋음(데이터가 남아있을 수 있기 때문에)
sc.close();
}
}
sc.nextInt ==> 정수형 입력
sc.next ==> String형 입력
다중 if~else문 - 분기문(조건문)
-if-else문은 두 가지 경우 중 하나가 수행되는 구조,
처리해야할 경우의 수가 셋 이상인 경우에 사용하는 구조식
- 여러개의 조건문 중에 맞는 조건에 해당하는 문장을 실행하는 구조
형식)
if(조건식1) {
조건식1이 참인 경우 실행문;
}else {
if(조건식2) {
조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
}else {
if(조건식3) {
조건식1, 조건식2가 거짓이고, 조건식3이 참인 경우 실행문;
}else {
조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
}
}
}
이걸 조금 더 간결하게 정리해보자면,
if(조건식1) {
조건식1이 참인 경우 실행문;
}else if(조건식2) {
조건식1이 거짓이고, 조건식2가 참인 경우 실행문;
}else if(조건식3) {
조건식1, 조건식2가 거짓이고 조건식3이 참인 경우 실행문;
}else {
조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행문;
}
예제01)
import java.util.Scanner; //scanner 클래스 사용하기 위해 추가
public class Ex06 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("숫자를 입력하세요.");
int num=sc.nextInt(); //화면을 통해 입력받은 값 num에 저장
if(num==1) {
System.out.println("입력받은 숫자는 1입니다.");
}else if(num==2) {
System.out.println("입력받은 숫자는 2입니다.");
}else if(num==3) {
System.out.println("입력받은 숫자는 3입니다.");
}else {
System.out.println("입력받은 숫자는 1~3 이외의 숫자입니다.");
}
}
}
예제02)
주사위를 굴려서 임의의 숫자를 받아서 처리해보자.
public class Ex09 {
public static void main(String[] args) {
// 주사위를 굴려서 임의의 숫자를 받아서 처리해보자.
int num=(int)(Math.random()*6)+1; //(int)를 해주는 이유는 형변환
if(num==1) {
System.out.println("주사위의 1번이 나왔습니다.");
}else if(num==2) {
System.out.println("주사위의 2번이 나왔습니다.");
}else if(num==3) {
System.out.println("주사위의 3번이 나왔습니다.");
}else if(num==4) {
System.out.println("주사위의 4번이 나왔습니다.");
}else if(num==5) {
System.out.println("주사위의 5번이 나왔습니다.");
}else {
System.out.println("주사위의 6번이 나왔습니다.");
}
}
}
Math.random()
- Math.random() 함수는 double 형으로 0.0이상 1.0 미만 사이의 값을 반환하는 함수
- 난수를 만들고 싶을때 자주 이용되는 함수
==> 더블형으로 출력되기 떄문에 int형으로 변환하는 작업이 이뤄짐
==> 1부터 랜덤으로 뽑고 싶으니까 +1해준다.
(만약 0부터 5까지 구하고싶으면 +1 하지 않는다)
'Back-End > Java' 카테고리의 다른 글
[Java] 반복문 while, do while (0) | 2021.08.08 |
---|---|
[Java] 조건문 switch~case문 (0) | 2021.08.08 |
[Java] 조건문 if문 (0) | 2021.08.08 |
[Java] 이클립스에서 명령행 인자 입력방법 (0) | 2021.08.08 |
[Java] 연산자(operator) (0) | 2021.08.04 |
댓글