BC400-1-1 (오후)

Beemajor·2024년 7월 22일
post-thumbnail


선언하고 다르게 사용할 수 있다. 허나 상수로 선언하면 안바뀐다.


clear 해도 인티저형과 CHar 형은 결과가 다르다.
어떤 단어와 단어, 부호 사에에는 공백이 무조건 필요하다.
ex) gv_num = gv_num + 1.


If문과 Case문 쓰는 방법입니다.


값을 입력하지 않았다면 입력해주세요!

* 입력값선언
PARAMETERS Pa_sub TYPE C LENGTH 1.
PARAMETERS Pa_Num TYPE i.

* 변수선언
Data gv_subject TYPE C.
Data gv_Num1 TYPE i.
Data gv_Num2 TYPE i.
Data gv_rank TYPE C.

* 케이스 분류
IF Pa_sub = 'A' or Pa_sub = 'a'. "to upper case 쓰면 대문자 변환가능
 Move Pa_Num to gv_Num1.
 ELSEIF  Pa_sub = 'B' or Pa_sub = 'b'. "to upper case 쓰면 대문자 변환가능
   Move Pa_Num to gv_Num2.
ENDIF.

* A 점수분류
IF gv_Num1 >= 90.
 gv_rank = 'A'.
 ELSEIF  gv_Num1 < 90 and gv_Num1 >= 80 . " ELSEIF gv_Num1 between 80 and 89.
   gv_rank = 'B'.
   ElseIF gv_Num1 < 80 and gv_Num1 >= 1. " ELSEIF gv_Num1 between 1 and 79.
     gv_rank = 'c'.
ENDIF.

* B 점수분류
IF gv_Num2 >= 85.
 gv_rank = 'A'.
 ELSEIF  gv_Num2 < 85 and gv_Num2 >= 70 . " ELSEIF gv_Num2 between 70 and 84.
   gv_rank = 'B'.
   ElseIF gv_Num2 < 70 and gv_Num2 >= 1 . " ELSEIF gv_Num2 between 1 and 69.
     gv_rank = 'c'.
ENDIF.

* A와 B가 모두 영점인 경우 C
* Why? Or을 쓰면 초기값 때문에 분류가 안된다.
iF gv_Num1 = 0 and gv_Num2 = 0.
  gv_rank = 'C'.
  endif.


* 출력을 하며 A와 B값을 전환
IF Pa_sub = 'A' or Pa_sub = 'a'. "to upper case 쓰면 대문자 변환가능
 WRITE '과목명: SAP UI5'.
 ELSEIF  Pa_sub = 'B' or Pa_sub = 'b'. "to upper case 쓰면 대문자 변환가능
 WRITE '과목명: ABAP'.
ENDIF.

NEW-LINE.

WRITE '등급'.
WRITE : gv_rank.
*아래는 CASE문
*PARAMETERS: pa_cour TYPE c LENGTH 1,
*            pa_num  TYPE N LENGTH 3.
*
*DATA gv_result TYPE c.
*DATA gv_course TYPE c LENGTH 8.
*
*CASE pa_cour.
*  WHEN 'A'.
*    gv_course = 'SAPUI5'.
*    IF pa_num >= 90.
*      gv_result = 'A'.
*    ELSEIF pa_num BETWEEN 80 and 89.
*      gv_result = 'B'.
*    ELSE.
*      gv_result = 'C'.
*    ENDIF.
*  WHEN 'B'.
*    gv_course = 'ABAP'.
*    IF pa_num >= 85.
*      gv_result = 'A'.
*    ELSEIF pa_num BETWEEN 70 and 84.
*      gv_result = 'B'.
*    ELSE.
*      gv_result = 'C'.
*    ENDIF.
*ENDCASE.
*
*WRITE: '과목:',gv_course.
*NEW-LINE.
*WRITE: '등급:',gv_result.

두가지의 IF문과 CASE 문을 보셨습니다.

파라메터 즉 사용자가 입력한 값을 정의할때는 Pa 임!
Data 는 정의할 때 gv
, lv_ 임. 꼭 구분해주세요!!

사용자는 아무것도 모르는 사람입니다.
값이 마이너스로 둘어올 수 도있고 입력을 안하고 실행할 수 도있고
등등등 모든 상황을 고려해주세요!!

그리고 입력안한값 결과 실행이 안되는건 항상
If 문의 서두에 넣어주시라요.


Select문 드디어 나왔습니다. 멋있죠
sy-subrc 사용: sy-subrc는 이전에 실행된 명령문의 결과를 나타냅니다.
IS INITIAL은 sy-subrc가 0인 경우를 체크하는 것입니다.
일반적으로, sy-subrc가 0이면 성공적인 실행을 의미합니다.
type scarr-carrname. => scarr 테이블에 carrname구조와 같다.


활용 버젼.

profile
i'm Graphic Designer

0개의 댓글