*완전!!!! 기초부터 혼자 공부하면서 기록하기 위해 쓰는 글입니다. 부족한 부분이 많습니다. 혹시 가르쳐주실 부분이 있으시면 댓글 언제든지 환영합니다 :D
참고로, 이클립스를 사용했습니다!
문제:
100 이하의 양의 정수만 입력된다. while 문을 이용하여 1부터 입력받은 정수까지의 합을 구하여 출력하는 프로그램을 작성하시오.
일단 데이터값을 입력받기 위해서는
import java.util.Scanner; ☞ Scanner를 import해주고,
Scanner sc=new Scanner(System.in); ☞ Scanner 객체를 생성해줘야 합니다.
int i=1;
☞ while문을 돌리기 위해서는 초기값이 1인 변수가 필요해서 i를 만들어줬습니다.
int sum=0;
☞그 다음엔 합계를 저장해줄 sum변수를 0으로 초기화해서 만들어줍니다.
int j=sc.nextInt();
☞ 100 이하인 양의 정수만 입력된다고 했으므로 int형 변수 j를 만들어서 입력받을 수 있게 설정해둡니다.
while(i<=j){
☞ 이제 while문을 작성하겠습니다
while문은 {} 안에 있는 문장을 반복실행시켜주는 반복문으로, ()안에 있는 조건이 참일 때까지만 반복실행됩니다!
즉 while (조건문) { 실행될 문장 } 의 형태가 되는 겁니다.
저는 1부터 입력받은 숫자인 j까지를 출력할 것이기 때문에 i가 j일 때까지만 반복문이 작동해야겠죠?
그래서 while문안에 저런 조건을 넣어줍니다.
sum=sum+i;
☞ while문 안에 실행될 문장을 넣어줍니다.
sum은 현재 0인데 while문이 실행될때마다 sum값에 i값을 추가시켜주면
i =1일 때, sum= 0+1 = 1
i =2일 때, sum= 1+2 = 3
i =3일 때, sum= 3+3 = 6
i =4일 때, sum= 6+4 = 10
i =5일 때, sum= 10+5 = 15
i++;
☞ 마찬가지로 while문 안에 넣어줍니다. 보통 반복문 안에 꼭 들어가는 문장인데요
i의 값을 1 증가시켜주겠다는 뜻입니다. i의 값을 증가시켜주지 않는다면 계속 i값에 1만 들어가게 됩니다.
그러면 while문이 무한히 작동하게 되겠죠? 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ..... 이런 식으로...
무한루프가 발생하지 않게 하려면 꼭 넣어줘야 하는 증감식입니다.
System.out.print(sum);
☞ print문은 ()안에 있는 문장을 그대로 출력시켜주는 출력문입니다.
합계를 구하는 문제이므로 i부터 j까지의 총합계를 저장해둔 sum을 출력해줍니다.
이제 실행을 시켜볼게요
☞ 예시로 10을 넣었더니 1+2+3+4+5+6+7+8+9+10 을 계산한 55가 출력되는걸 볼 수 있습니다
여기서 10은 j값이고 55는 sum값이 되는거겠죠
저희가 만든 계산식으로 i가 1부터 10까지 계속 sum에 더해져서 sum을 출력시켜준 겁니다.
sum은 한번만 출력시켜줘야 하기 때문에 print문은 while문 바깥에 적어줘야 한답니다!
'JAVA > 정올 문제풀이' 카테고리의 다른 글
기초 다지기 539 : 반복제어문1 - 자가진단4 (0) | 2018.12.18 |
---|---|
기초 다지기 538 : 반복제어문1 - 자가진단3 (0) | 2018.12.17 |
기초 다지기 536 : 반복제어문1 - 자가진단1 (0) | 2018.12.17 |
기초 다지기 124:선택제어문-형성평가5 (0) | 2018.12.15 |
기초 다지기 123:선택제어문-형성평가4 (0) | 2018.12.15 |