본문 바로가기

JAVA/Study

24. if , if ~ else, if ~ else if ~ else

    public static void main(String[] args) {
 
기본적으로 if문 사용법은
if (조건) {
 조건에 만족했을경우 실행문장;
}
 
이 아래로는
조건이고 뭐고 걍실행
 
이 되겠고
if~ else문은
 
if(조건){
 조건에 만족했을경우 실행
}else {
 조건에 만족하지 않았을경우 실행
}
 
if~ else if~ else~는
 
if(조건1){
 조건에 만족했을경우 실행
} else if(조건2){
 조건2에 만족했을경우 실행
} else if(조건3){
 조건3 어쩌구
}else{
 만족못하는사람이되어버림
}
이렇게 된다
 
        // 제어문 : 조건분기문, 반복문, 기타 제어문 으로 구성되며, 프로그램 실행의 흐름을 제어하는 문장
        // 구조적 프로그래밍 언어는 구조적으로 되어있다(순차적)

        // 조건분기문 : 입력되어지는 데이터의 조건 만족 여부에 따라 실행 내용을 달리 하도록 하는 문장
        // 조건에 따라 나뉘어지는(분기) 문장
        // if~문 , switch~문
       
 
        //삼항 연산자 (제어문보다는 삼항연산자가 더 빠름)
        //연사자일뿐 조건분기문은 아님 --간단한것만 가능
        int point = 80;
        String res = "";
        res = (point >= 90) ? "우수" : "보통";
       
        //조건분기문 ( 한줄if문 )
        String res2 ="보통";
        if (point>=90) res2 = "우수";
        //단순할땐 이렇게 한줄로 쓸 수 있지만
       
       
        //실행할 문장이 두줄 이상의 if문
        String res3 = "보통";
 
        int bonus=0;
 
        if(point>=90){
            res3="우수";
            bonus = 10;
        }
        //여러줄이 될 경우 {}블록을 씌어줘서 여러개를 실행가능
       
       
        //조건식이 만족하지 않을 때와 만족할때를 나타내는 if문
        String res4 ="";
        if(point>=90    ){
            res4="우수";
        } else{
            res4="보통";
        }
       

import java.util.Scanner;
//Scanner 변수명 = new Scanner(System.in); 을 친후 Ctrl+shift+O 치면 쉽게 임포트가 된다


public class Example {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
       
        System.out.println("번호입력[1-10] : ");
        int num = sc.nextInt();
       
        System.out.println("국어 점수 입력[1~100] : ");
        int kor = sc.nextInt();
       
        System.out.println("수학 점수 입력[1~100] : ");
        int mat = sc.nextInt();
       
        System.out.println("영어 점수 입력[1~100] : ");
        int eng = sc.nextInt();
       
        int tot = kor+mat+eng;
        float avg= tot/3.0f;
       
        String pon = "";
        //if~ 단순if
       
        //if~else~ 일반if
        //국어 , 수학, 영어 각 과목의 점수가 60점 이상이고, 평균이 80점 이상이면 합격
        if(kor>=60 && eng>=60 && mat>=60 && avg>=80) //&&AND문은 셋다 만족해야하므로
         //국영수 모두 60이상이고 평균이 80이상일때가 만족하는 조건이다
        {
            pon = "합격";
            System.out.println(pon);
        }
        else {
            pon ="불합격";
       
        System.out.println(pon);
        }
 
 
 
 
        String remark = "";
        //참고(remark)는 국어, 영어, 수학 점수 중에서 하나라도 90 이상이면, "과목우수", 아니면 ""처리
        if(kor>=90 || mat>=90 || eng>=90) //OR문은 셋중 하나만 만족해도됨
        {
            remark = "과목우수";
            System.out.println(remark);
        }else
        {
        System.out.println(remark);
        }
 

        //if~else if~else
        //만약, 평균이 90이상이면,  "A", 80이상이면 "B", 70이상이면 "C", 60이상이면 "D"
        //60점 미만이면 "F" //if (){} else if(){} else{}-- 다단계if라고함
        String hak="";
        if(avg>=90){ 
            hak="A";
            System.out.println(hak);
        }else if(avg>=80){
//90이상에서 만족하지 못했으면 그다음 else if문에는 90미만의 의미가 내포되어있다고 생각하면된다
            hak="B";
            System.out.println(hak);
        }else if(avg>=70){
            hak="C";
            System.out.println(hak);
        }else if(avg>=60){
            hak="D";
            System.out.println(hak);
        }else{
            hak="F";
            System.out.println(hak);
        }
/*
        if(조건식1){
            조건식1을 만족했을때 출력
        }else if(조건식2){
            조건식 1을 만족하지않고 조건식2를 만족했을때
        }else if(조건식3){
            조건식2를 만족하지않고 조건식3를 만족했을때
        }else{
            어떤 조건식도 만족하지 못했을경우
        }
 
 

*/
        //번호 , 국어 , 영어 ,수학, 총점, 평균 ,판정, 참고사항, 학점을 모두 출력하시오.
        System.out.println("번호\t국어\t영어\t수학\t총점\t평균\t판정\t참고사항\t학점");
        System.out.printf("%d\t%d\t%d\t%d\t%d\t%.1f\t%s\t%s\t%s",num,kor,eng,mat,tot,avg,pon,remark,hak);
       
        sc.close();
    }

}

예제를 하나 더올려보자면

import java.util.Scanner;

public class Example {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("컴퓨터 일반 점수 :");
        int edps = sc.nextInt();

        System.out.println("스프레드시트 일반 점수 :");
        int sp = sc.nextInt();

        System.out.println("데이터베이스 일반 점수 :");
        int db = sc.nextInt();
       
        //컴퓨터 일반, 스프레드시트일반 ,데이터베이스일반 점수를 변수로 입력받아
        //평균이 96~100 A+, 93~95 A0 , 90~92 A-
        //          86~89 B+, 83~85 B0, 80~82 B-
        //          76~79 C+, 73~75 C0, 70~72 C-
        //평균이 66~69 D+, 63~65 D0, 60~62 D-
        //평균이 60 미만이면 F
       
        //if~else if~else 문으로 학점(hak)을 계산
        int tot=edps+sp+db;
        float avg=tot/3.0f;
        String hak="";
        if(avg>=90){
            hak="A";
        }else if(avg>=80){
            hak="B";
        }else if(avg>=70){
            hak="C";
        }else if(avg>=60){
            hak="D";
        }else{
            hak="F";
        }
       
        //if((int) avg%10>=6)
        //if~else if~else 문으로 평균의 나머지를 정수로 바꾸어 +,0,- 를 hak추가
        if(avg<60){

        }else if(avg==100){
           hak = hak + "+";
        }else if((int)avg%10>=6){
            hak = hak +"+";
        }else if((int)avg%10>=3){
            hak = hak +"0";
        }else{
            hak = hak +"-";
        }
       
        //if((int) avg == 100) hak = "A+"
        //if((int) avg < 60) hak = "F";
       
        System.out.println("학점은 : "+hak);
       
        sc.close();
    }

}