Microsoft MVP성태의 닷넷 이야기
배열과 반복문에서 질문드립니다 [링크 복사], [링크+제목 복사],
조회: 18206
글쓴 사람
김대훈
홈페이지
첨부 파일
 

class Program
    {
        static void Main(string[] args)
        {
            int[] score = new int[] { 88, 92, 77, 89, 98, 36, 28, 90, 55 };
            int result = 0;
          
            for (int i = 0; i < score.Length; i++)
            {
                if(score[i] > 77)
                {
                    result = result + score[i];
                }
            }
        }
    }

배열에서 77이상인 숫자를 더하는 코드를 작성해봤습니다.

그런데 아무리 생각해봐도 77이상인 숫자의 갯수를 구하려면 어떻게 해야하는지 모르겠네요.(엑셀에서는 countif 하면 되는데 ㅠㅠ)

그리고 한가지 더 궁금한점이 있는데요 result 변수 선언함과 동시에 0으로 초기화했는데 꼭 초기화를 해줘야 하나요? 습관처럼 자꾸 0으로 초기화하네요 ㅎㅎ

너무 초보적인 질문이라 죄송합니다 ㅠㅠ









[최초 등록일: ]
[최종 수정일: 6/26/2019]


비밀번호

댓글 작성자
 



2019-06-26 08시57분
우선, 이런 경우 77을 포함하고 있지 않으므로 "이상"은 아니고 "초과"라고 표현하셔야 합니다. ^^

암튼, 숫자의 갯수를 구하려면 그냥 count 변수를 하나 두고 ++ 시키면 됩니다. 다음과 같이.

            int[] score = new int[] { 88, 92, 77, 89, 98, 36, 28, 90, 55 };
            int count = 0;

            for (int i = 0; i < score.Length; i++)
            {
                if (score[i] > 77)
                {
                    count++;
                }
            }

참고로 나중에 LINQ를 공부하시게 되면 다음과 같이 약식 표현으로 구하는 방법도 알게 됩니다.

int count = score.Count((elem) => elem > 77);

C#은 반드시 개발자가 변수에 대해 명시적인 값을 초기화하는 걸 권장합니다. 습관처럼 초기화하는 것이 좋습니다. ^^

초기화 관련해서는 다음의 글도 살짝 읽어보세요. ^^

닷넷 - 값 형식을 new 없이 생성하면 0으로 초기화되지 않는다?
; http://www.sysnet.pe.kr/2/0/10834

정성태
2019-06-26 12시53분
[김대훈] 와 코드를 보면 이리 간단한데 왜 생각을 못했는지 ㅠㅠ
초기화 관련글도 잘 읽어보겠습니다..
감사합니다^^
[guest]

... 76  [77]  78  79  80  81  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
579futu...2/16/200716126VS2005의 스마트 클라이언트에서 웹브라우저 예제 질문입니다. [1]
578정해봉2/16/200715306IE Embeded Assambly 방식에서 CAS 설정 방법 [1]
575박성민2/12/200716448COM에 데이터 보내기 질문입니다. [1]
571엔틱스2/7/200716990그냥... 질문은 아닙니다만... [2]
5682/6/200714258이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요?파일 다운로드1
569정성태2/6/200715966    답변글 [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요? [1]
570정성태2/6/200715715        답변글 [답변]: [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요?
5732/8/200714690            답변글 [답변]: [답변]: [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요? [1]파일 다운로드1
565한귀순2/5/200715355typed dataset 의 유용성
566정성태2/6/200717176    답변글 [답변]: typed dataset의 유용성 [1]
564정민영2/5/200715550혹시 이런 경우 보신적 있으신가 궁금합니다..^^; [2]
563창민이2/2/200715933Visual C++ COM Objects Returning Recordsets 사용에 대해.. [3]
562현석1/29/200715598C# 스마트응용장치에서 아이콘 움직이게하는거 질문요 ^^ [1]파일 다운로드1
559초보1/27/200717142급 질문 입니다. visual studio 자동 종료에 대한 질문입니다. [2]
558즈믄1/26/200716729.Net Framework v2.0에서 Winform의 Panel에 Excel파일 보여주기 [2]
556정재우1/26/200716958vista에서 smartclient의 System.Security.PermissionsRegistryPermission 에러 [1]
555dev....1/25/2007185342005 WebBrowser내에서 팝업 처리 문제 관련 질문입니다.
561정성태1/29/200721214    답변글 [답변]: 2005 WebBrowser 내에서 팝업 처리 문제 관련 질문입니다.
554sky1/23/200716941<급질문> interop 를 사용함에 있어 [2]
557sky1/26/200714181    답변글 [답변]: <급질문> interop 를 사용함에 있어
553deve...1/15/200716205오류가 나는데 도저히 모르겠네여...좀 봐주세요... [3]파일 다운로드1
551sky1/23/200715296[급질문] vb6으로 만들어진 dll 를
552정성태1/10/200716933    답변글 [답변]: [급질문] vb6으로 만들어진 dll 를 [1]
546오택성1/2/200715780스마트클라이언트 DebugIEHost.log 좀 봐 주세요. [9]
545심현철12/28/200615981ClickOnce를 이용한 SmartClient의 설치 자동화 방법에 대해서 문의를 드립니다. [1]
53912/26/200615069COM+ 자동등록 하니 속도가 영...?
... 76  [77]  78  79  80  81  82  83  84  85  86  87  88  89  90  ...