JAVA/정올 문제풀이

기초 다지기 132 : 반복제어문2 - 형성평가3

최뭉뭉 2018. 12. 25. 23:41

*완전!!!! 기초부터 혼자 공부하면서 기록하기 위해 쓰는 글입니다. 부족한 부분이 많습니다. 혹시 가르쳐주실 부분이 있으시면 댓글 언제든지 환영합니다 :D

참고로, 이클립스를 사용했습니다!



문제:

정수를 입력받아서 1부터 입력받은 정수까지의 5의 배수의 합을 구하여 출력하는 프로그램을 작성하시오.



일단 데이터값을 입력받기 위해서는

import java.util.Scanner;      Scanner를 import해주고, 

Scanner sc=new Scanner(System.in);      Scanner 객체를 생성해줘야 합니다.




int i=sc.nextInt();

☞ 정수 i를 입력받을 수 있도록 i 변수를 int형으로 만들어줍니다.








int sum=0;

☞ 총합계를 계속 더해주기 위해서 sum이라는 int형 변수를 만들어줍니다.

아직 아무것도 더해지지 않은 상태기 때문에 0으로 초기화를 시켜줍니다.









for(int j=1;j<=i;j++){

☞ for문은 while문과 같은 반복제어문 중 하나로 기본 구조는 for(초기값; 조건식; 증감식) 입니다

초기값 부분에는 for문을 i값까지 반복해야 하므로 int형 변수 j를 만들어주고 일단 1로 설정해줍니다.

두번째 부분인 조건식에는 반복문이 실행될 조건을 넣어줍니다. 이 조건식이 참일때만 반복문이 실행됩니다.

저는 j가 i일 때까지만 반복문을 실행시킬 것이기 때문에 j가 i 이하라는 조건식을 넣어줍니다. 

마지막 증감식 부분에는 반복문이 계속 돌아가는 무한루프를 벗어나기 위해 k의 값을 변경시켜주는 증감식을 넣어줍니다.

j++는 j=j+1과 같은 의미입니다.










if(j%5==0)

☞  for문 안에 실행될 문장을 넣어줍니다. 

이처럼 ()안의 조건을 만족할 때 {} 안의 문장을 실행하는 if문을 조건문이라고 합니다.

저는 5의 배수인 값들만 더해줄 것이기 때문에 "j%5==0"이라는 조건을 걸어줍니다.

% 연산자는 a를 b로 나눴을 때 몫을 제외한 나머지 값만 돌려줍니다.

예를 들어 5%3을 출력해보시면 나머지값인 2가 출력됩니다.

즉 j를 5로 나눴을 때 나머지가 0이 나온다는 의미는 j가 5의 배수라는 뜻입니다.









sum+=j;

 if문 안에 실행시켜줍니다.

저는 5의 배수인 값들의 합계를 구하고 싶기 때문에 sum함수에 j값을 더해줬습니다.

그러면 j값이 i가 될 때까지 반복해서 실행되면서 5의 배수들인 j값만 sum값에 추가가 되겠죠




System.out.print(sum);

print문은 괄호 안에 나오는 문장을 그대로 출력해주는 출력문입니다.

5의 배수들을 모두 더한 sum 값은 한번만 출력하면 되기 때문에 밖에 있는 for문에 넣어야합니다.









실행해보겠습니다!




☞ 20이라는 값을 넣어봤습니다.

그러면 5의 배수만 if문에서 걸러져서 5 10 15 20 이 조건에 해당되겠죠?

그러면 합계인 5+10+15+20 = 50이 sum값에 저장되어서 출력됩니다.



이제 크리스마스도 20분 남았네요 ㅎㅎ 다들 행복한 크리스마스 보내셨나용?

크리스마스 사실.. 별거 없죠! (눙물..)