디시인사이드 갤러리

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

갤러리 본문 영역

Ada: 명령형 언어 – 조건 표현식

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

명령형 언어 – 조건 표현식

Ada 2012 버전에서는 조건문(if 문과 case 문)에 대응하는 표현식(expression)을 도입했습니다.

If 표현식 (If expressions)

다음은 이전에 살펴본 예제를 다른 방식으로 작성한 버전입니다. 여기서는 if 문(statement)이 if 표현식(expression)으로 대체되었습니다:

with Ada.Text_IO;         use Ada.Text_IO;

with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;


procedure Check_Positive is

   N : Integer;

begin

   Put ("Enter an integer value: ");

   Get (N);

   Put (N);


   declare

      S : constant String :=

        (if N > 0

           then " is a positive number"

           else " is not a positive number");

   begin

      Put_Line (S);

   end;

end Check_Positive;

Code language: PHP (php)

if 표현식은 N의 값에 따라 두 개의 문자열(String) 중 하나로 평가되며, 그 결과값을 지역 변수 S에 할당합니다.

Ada의 if 표현식은 if 문(statement)과 유사합니다. 하지만, 이것이 (문이 아닌) 표현식(expression)이기 때문에 발생하는 몇 가지 차이점이 있습니다:

  • 모든 분기(branch)의 표현식은 반드시 동일한 타입(type)이어야 합니다.

  • 만약 if 표현식을 둘러싸는 더 큰 표현식에 이미 괄호가 사용되지 않았다면, if 표현식 자체는 반드시 괄호로 묶어야 합니다.

  • then 다음의 표현식이 Boolean 타입이 아니라면, else 분기는 반드시 있어야 합니다. 만약 then 다음의 표현식이 Boolean 타입이라면, else 분기는 선택 사항이며 생략할 경우 기본적으로 else True로 처리됩니다.

다음은 또 다른 예제입니다:

with Ada.Text_IO; use Ada.Text_IO;


procedure Main is

begin

   for I in 1 .. 10 loop

      Put_Line (if I mod 2 = 0

                  then "Even"

                  else "Odd");

   end loop;

end Main;

Code language: Ada (ada)

이 프로그램은 “Odd”와 “Even”을 번갈아 가며 총 10줄을 출력합니다.

Case 표현식 (Case expressions)

If 표현식과 유사하게, Ada에는 case 표현식도 있습니다. 여러분이 예상하시는 방식 그대로 동작합니다.

with Ada.Text_IO; use Ada.Text_IO;


procedure Main is

begin

   for I in 1 .. 10 loop

      Put_Line

        (case I is

         when 1 | 3 | 5 | 7 | 9  => "Odd",

         when 2 | 4 | 6 | 8 | 10 => "Even");

   end loop;

end Main;

Code language: Ada (ada)

이 프로그램은 이전 예제와 동일하게 동작합니다.

문법은 case 문(statement)과는 다르며, 각 분기(branch)가 쉼표(comma)로 구분됩니다.


이 문서는 ‘Introduction to Ada'(저자: Raphaël Amiard, Gustavo A. Hoffmann, © AdaCore 2018–2024)를 Google Gemini가 한국어로 번역한 것입니다. 원저작물과 동일하게 CC BY 4.0 라이선스가 적용됩니다.


추천 비추천

0

고정닉 0

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 술 마시면 실수가 많을 것 같은 스타는? 운영자 25/04/14 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 43280 65
2845288 사수놈 8시출근인데 항상 9시이후에답장하는거개욱김 [1] Synoeca갤로그로 이동합니다. 23:00 3 0
2845287 머임 MSSQL Express 상업용으로 써도 됐었네 ㅇㅅㅇ [3] 강유현갤로그로 이동합니다. 22:59 9 0
2845286 파워 500W a120 얼마 정도면 중고로 판매가 가능할까요? 넥도리아(175.196) 22:53 6 0
2845285 닷컴 버블붕괴 직후 수준으로 채용줄어들거 같애 피치피(183.101) 22:52 9 0
2845284 세상을 단순화해서 보는게 나쁜건 아님 [1] ㅆㅇㅆ(124.216) 22:51 15 0
2845282 내일 면접 취소 문자 보내야겠다 [1] 프갤러(121.190) 22:42 26 0
2845281 충격.. [1] ♥냥덩소프트♥갤로그로 이동합니다. 22:41 22 0
2845280 프갤 극우들이 자꾸 틀튜브 쳐올리는 이유 [7] ㅆㅇㅆ(124.216) 22:37 46 1
2845279 가끔 재귀호출에 관한 글들보면 [19] 슈퍼막코더(126.34) 22:34 50 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 22 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 27 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
뉴스 직원 26명에 ‘18평 아파트’ 통 큰 선물! 임채무, 150억 빚에 ‘화장실 1년 노숙’ 충격 고백 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2