날아라쩡글이의 블로그입니다.

검증 본문

java (학원 전) story

검증

날아라쩡글이 2021. 8. 5. 12:01
728x90
반응형

검증 (Validation)

검증이란 데이터가 유효한 값인지 체크하는 과정이다. 

우리가 사용자가 특정 범위의 값을 입력했는지 확인해서 올바를 때에만 이후 작업을 진행하여야 하는데,

day03패키지의 Ex10은 그러한 작업이 없다.

그렇기 때문에 잘못된 점수(0~100 범위를 벗어난)을 입력하면 잘못된 결과가 나오게 된다.

따라서 우리는 사용자가 입력한 점수가 올바를때에만 A~F를 출력하고 

그 외에는 "잘못 입력 하셨습니다. "를 출력하는 코드를 만들어 보게 될 것이다.

 

 

import java.util.Scanner;

public class Ex01Validation {

    public static void main(String[]args) {

        Scanner scanner = new Scanner(System.in);

        final int SCORE_MAX = 100;

        final int SCORE_MIN = 0;

        final int TEST_NUMBER_I = 90;

        final int TEST_NUMBER_II = 80;

        final int TEST_NUMBER_III = 70;

        final int TEST_NUMBER_IIII = 60;

        final String TEXT_DEGREE ="학점 입니다.";

        

        System.out.println("점수를 입력하세요");

        System.out.print(">");

        int userNumber = scanner.nextInt();

        

        System.out.println("검증이 안됬을 경우");

        if(TEST_NUMBER_I<=userNumber) {

            System.out.printf("A%s\n",TEXT_DEGREE);

        }else if(TEST_NUMBER_II<=userNumber) {

            System.out.printf("B%s\n",TEXT_DEGREE);}

        else if(TEST_NUMBER_III<=userNumber) {

            System.out.printf("C%s\n",TEXT_DEGREE);}

        else if(TEST_NUMBER_IIII<=userNumber) {

            System.out.printf("D%s\n",TEXT_DEGREE);

        }else {

            System.out.printf("F%s\n",TEXT_DEGREE);

        }

      

        

        System.out.println("----------------");

        // 값 검증하기 1번

        // 각각 결과가 나오는 범위를 조건식으로 정확하게 잡아서 해당 결과가 나오게 만들기

        // 이 방법은 올바른 값의 범위가 연속적이지 않을 때 사용하면 좋다. 

        //

        //

        //

        //

        

        System.out.println("값 검증 1번");

        if(userNumber>=TEST_NUMBER_I&&userNumber<=SCORE_MAX) {

            System.out.println("A");

        }else if(userNumber>=TEST_NUMBER_II&&userNumber<=TEST_NUMBER_I) {

            System.out.println("B");

        }else if(userNumber>=TEST_NUMBER_III&&userNumber<=TEST_NUMBER_II) {

            System.out.println("C");

        }else if(userNumber>=TEST_NUMBER_IIII&&userNumber<=TEST_NUMBER_III) {

            System.out.println("D");

        }else if(userNumber>=SCORE_MIN&&userNumber<=TEST_NUMBER_IIII) {

            System.out.println("F");

        }else {

            System.out.println("잘못된 점수입니다. ");

        }

        

        

        System.out.println("----------------");

        

        //값 검증하기 2번 

        //사용자가 입력한 값이 올바른 값의 전체 범위안에 속하는지 확인하여 그 이후에 진행하는 방법.

        //이 방법은 올바른 값의 범위가 연속적일때 사용하면 좋다. 

        //중첩 if문을 사용

        //

        //

        //

        System.out.println("값 검증하기 2번");

        if(userNumber>=SCORE_MIN && userNumber<=SCORE_MAX) {

            //사용자가 입력한 점수가 0이하 100이하의 올바른 값이므로 

            //중첩 if문에서 각각 A~F가 출력되게 만들어준다.

            if(TEST_NUMBER_I<=userNumber) {

                System.out.printf("A%s\n",TEXT_DEGREE);

            }else if(TEST_NUMBER_II<=userNumber) {

                System.out.printf("B%s\n",TEXT_DEGREE);}

            else if(TEST_NUMBER_III<=userNumber) {

                System.out.printf("C%s\n",TEXT_DEGREE);}

            else if(TEST_NUMBER_IIII<=userNumber) {

                System.out.printf("D%s\n",TEXT_DEGREE);

            }else {

                System.out.printf("F%s\n",TEXT_DEGREE);

            }

            }else {

                //사용자가 입력한 점수가 올바르지 않으므로 경고 메세지만 출력

                System.out.println("올바르지 않은 점수입니다. ");

            }

        

        System.out.println("----------------");

        scanner.close(); 

       

    }

 

}

 

반응형

'java (학원 전) story' 카테고리의 다른 글

for반복문  (0) 2021.08.05
while문  (0) 2021.08.05
중첩 if문  (0) 2021.08.05
if -else if  (0) 2021.08.04
if-else 문제풀이  (0) 2021.08.04
Comments