디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Ada: 명령형 언어 – Case 문 (Case statement)

*루비*갤로그로 이동합니다. 2025.04.14 10:23:07
조회 43 추천 0 댓글 1

명령형 언어 – Case 문 (Case statement)


Ada의 case 문은 C와 C++의 switch 문과 유사하지만, 몇 가지 중요한 차이점이 있습니다.

다음은 이전에 if 문으로 보여주었던 프로그램의 변형 예제입니다:

with Ada.Text_IO;         use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure Check_Direction is
   N : Integer;
begin
   loop
      Put ("Enter an integer value: ");
      Get (N);
      Put (N);

      case N is
         when 0 | 360 =>
            Put_Line
              (" is due north");
         when 1 .. 89 =>
            Put_Line
              (" is in the northeast quadrant");
         when 90 =>
            Put_Line
              (" is due east");
         when 91 .. 179 =>
            Put_Line
              (" is in the southeast quadrant");
         when 180 =>
            Put_Line
              (" is due south");
         when 181 .. 269 =>
            Put_Line
              (" is in the southwest quadrant");
         when 270 =>
            Put_Line
              (" is due west");
         when 271 .. 359 =>
            Put_Line
              (" is in the northwest quadrant");
         when others =>
            Put_Line
              (" Au revoir");
            exit;
      end case;
   end loop;
end Check_Direction;

이 프로그램은 사용자에게 반복적으로 정수 값을 입력하라는 프롬프트(prompt)를 표시하고, 그런 다음 만약 그 값이 0 .. 360 범위 내에 있으면 관련된 사분면(quadrant) 또는 축(axis)을 표시합니다. 만약 값이 이 범위 밖의 정수이면, 작별 메시지를 출력한 후 루프(및 프로그램)가 종료됩니다.

case 문의 효과는 이전 예제의 if 문과 유사하지만, 여러 번의 범위 검사를 포함하지 않기 때문에 case 문이 더 효율적일 수 있습니다.


Ada case 문의 주목할 만한 점들:


  • case 표현식(여기서는 변수 N)은 반드시 이산 타입(discrete type), 즉 정수 타입(integer type) 또는 열거 타입(enumeration type)이어야 합니다. 이산 타입에 대해서는 나중에 이산 타입 섹션에서 더 자세히 다룰 것입니다.
  • case 표현식에 대한 모든 가능한 값은 case 문의 유일한 분기(branch)에 의해 처리(cover)되어야 합니다. 이는 컴파일 시점에 검사될 것입니다.
  • 분기(branch)는 0과 같은 단일 값을 명시할 수 있고, 1 .. 89와 같은 값의 범위를 명시할 수도 있으며, 또는 이 둘의 어떤 조합(|로 구분됨)도 명시할 수 있습니다.
  • 특별한 경우로, 선택적인 마지막 분기(branch)는 others를 명시할 수 있는데, 이는 이전 분기들에서 포함되지 않은 모든 값을 처리(cover)합니다.
  • 실행은 case 표현식의 평가와 그런 다음 그 값을 처리(cover)하는 유일한 분기(branch) 내의 문장 시퀀스(statement sequence)로 제어가 이전되는 것으로 구성됩니다.
  • 선택된 분기 내의 문장 실행이 완료되면, 제어는 end case 이후부터 재개됩니다. C와 달리, 실행이 다음 분기로 넘어가지(fall through) 않습니다. 따라서 Ada는 break 문이 필요하지 않으며 (가지고 있지도 않습니다).

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 술 마시면 실수가 많을 것 같은 스타는? 운영자 25/04/14 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 43280 65
2845288 사수놈 8시출근인데 항상 9시이후에답장하는거개욱김 [2] Synoeca갤로그로 이동합니다. 23:00 7 0
2845287 머임 MSSQL Express 상업용으로 써도 됐었네 ㅇㅅㅇ [3] 강유현갤로그로 이동합니다. 22:59 11 0
2845286 파워 500W a120 얼마 정도면 중고로 판매가 가능할까요? 넥도리아(175.196) 22:53 6 0
2845285 닷컴 버블붕괴 직후 수준으로 채용줄어들거 같애 피치피(183.101) 22:52 9 0
2845284 세상을 단순화해서 보는게 나쁜건 아님 [1] ㅆㅇㅆ(124.216) 22:51 17 0
2845282 내일 면접 취소 문자 보내야겠다 [1] 프갤러(121.190) 22:42 26 0
2845281 충격.. [1] ♥냥덩소프트♥갤로그로 이동합니다. 22:41 22 0
2845280 프갤 극우들이 자꾸 틀튜브 쳐올리는 이유 [8] ㅆㅇㅆ(124.216) 22:37 48 1
2845279 가끔 재귀호출에 관한 글들보면 [21] 슈퍼막코더(126.34) 22:34 52 0
2845278 개쩔게 러스트 웹 서버랑 오픈 api 연동했다 [1] 프갤러(110.8) 22:34 18 0
2845276 전철에서 여자가 옷에 카메라 달고 있던데요 ㅈㅁ(211.227) 22:30 26 0
2845274 아스카는 오늘도 갓생을 살았어요 [2] 아스카영원히사랑해갤로그로 이동합니다. 22:24 26 0
2845273 안철수 백준 티어 어디 예상함 [1] ㅇㅇ(116.122) 22:15 21 0
2845271 밖에서 동영상 찍으면 타인 시선 어떄요? ㅈㅁ(211.227) 22:10 13 0
2845270 서탈할거같애서탈할거같애서탈할거같애서탈할거같애서탈할거같애서탈할거같애서탈할거 프갤러(1.242) 22:07 12 0
2845269 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩소프트♥갤로그로 이동합니다. 22:07 9 0
2845268 결국 관심사에따라서 비슷한 말하는듯 ㅆㅇㅆ찡갤로그로 이동합니다. 22:05 15 0
2845267 C++ 감수성을 되찾아야겠어 ㅇㅇ(59.15) 22:04 16 0
2845266 프롬프트 입력 저거해봤는데 대부분 비슷한 결론 나오는듯 [1] ㅆㅇㅆ찡갤로그로 이동합니다. 22:03 23 0
2845265 14년차 보안개발자 [4] ...(125.191) 22:02 55 0
2845264 대만 전쟁에 한국 끌려들어간다? 日 "한반도도 전장에 넣자" 제안 발명도둑잡기갤로그로 이동합니다. 21:58 12 0
2845263 공부는 열심히 해야하는거지?? 재밌게 하는게 아닌거지?? [2] ㅇㅇ(223.38) 21:57 17 0
2845260 나님 근 1년?만에? 강남 교보문고 구경 갔다오시다 [2] 딱님갤로그로 이동합니다. 21:47 40 0
2845258 유튭에 재미있어 보이는 프롬프트 해 봤는데 [2] 프갤러(61.108) 21:41 28 0
2845257 32스레드, 64스레드 필요한 곳 많지 ㅋㅋ [8] *루비*갤로그로 이동합니다. 21:35 56 0
2845256 이책 제목 말투가 마음에 듬 [1] 딱님갤로그로 이동합니다. 21:34 33 0
2845255 개발자는 인공지능/LLM한테도 대우받는구나 ㅎㅎ 세상이 불공평해 ㅎㅎ *루비*갤로그로 이동합니다. 21:29 40 0
2845254 경찰, 윤석열 친필 표지석 '내란' 글씨 수사중... 노동계 반발 발명도둑잡기갤로그로 이동합니다. 21:21 14 0
2845253 '명태균'만 나오면 급발진 홍준표, 오마이뉴스 기자에게 삿대질 발명도둑잡기갤로그로 이동합니다. 21:19 11 0
2845252 웹 프론트앤드 하는애들은 C 아예 몰?루여도 잘 먹고 잘 살더라 ㅇㅅㅇ [5] 강유현갤로그로 이동합니다. 21:16 60 0
2845251 짱깨 멸망의길 ㅋㅅㅋ ♥냥덩소프트♥갤로그로 이동합니다. 21:15 11 0
2845250 씨언어 공부안하길 잘한듯하다 이기 [7] 슈퍼막코더(126.34) 21:11 54 0
2845249 나님 강남 교보문고에서 자바 내공 쌓는 중~ [1] 딱님갤로그로 이동합니다. 21:09 32 0
2845248 준스기햄 이제보니까 컴퓨터 전공이였노 류도그담당(114.202) 21:07 36 0
2845247 저도 멀티코어 프로세싱 함 ㅇㅅㅇ [16] 강유현갤로그로 이동합니다. 21:06 89 0
2845246 대체 32쓰레드를 써서 부족할 일이 뭐가 있을까 [5] ㅆㅇㅆ(124.216) 21:01 53 0
2845245 황흐프 해라 이기 [2] 슈퍼막코더(126.34) 21:00 25 0
2845244 겜알못인데 겜학과 가봤자 [5] 슈퍼막코더(126.34) 20:58 41 0
2845243 내일 강서구 간다. 내 앞에서 국민의힘 내란의힘. 넥도리아(119.195) 20:56 13 0
2845242 - 정부의 국민 통제/감시 시스템 CBDC, 곧 시행된다 .(180.64) 20:55 26 0
2845241 이준석의 가장 큰 문제점은 정책의 일관성이 없음 ㅆㅇㅆ(124.216) 20:55 24 0
2845240 준스기햄 멀티코어 프로세싱 빡고수냐 ㅇㅅㅇ? [7] 강유현갤로그로 이동합니다. 20:54 65 0
2845239 안철수=v3가 성능이 어쩌고해도 명확한 결과물이 있음. [2] ㅆㅇㅆ(124.216) 20:52 38 0
2845237 컴공일수록 이준석을 뽑으면 안되는거 아님? 난 ㄹㅇ 그렇게 생각함 [5] ㅆㅇㅆ(124.216) 20:50 51 2
2845236 컴공 애들중에 자바 안 써본애들 있음 ㅇㅅㅇ? [8] 강유현갤로그로 이동합니다. 20:48 70 0
2845235 나님 대통령 투표 이준석으로 정했다 [5] 헬마스터갤로그로 이동합니다. 20:46 32 0
2845234 차 움직이는건 얼추 끝났는데 차에 이펙트 붙이는건 나중에하고 [2] ㅆㅇㅆ(124.216) 20:41 25 0
2845232 게임학과는 드가서 유니티배우나 ㅇㅅㅇ [3] 강유현갤로그로 이동합니다. 20:38 28 0
2845231 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩소프트♥갤로그로 이동합니다. 20:36 12 0
뉴스 박해준 “덜컥 한예종 합격”…리즈 시절 외모 공개에 “보검 닮은꼴 아들까지” 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2