10개의 정수를 입력받아 그들의 합계와 평균을 출력
10개를 입력하는 중간에 종료를 원하면 0을 입력하여 입력을 종료하고
최종 합계, 평균을 출력
< 입력 양식 >
입력 1 : XX
입력 2 : XX
입력 3 : XX
...
입력 10 : XX
<출력 양식 >
입력한 정수들의 합계 : XXX
입력한 정수들의 평균 : xx.xx
고칠 점
버그(?!) 고치기
처음부터 0을 입력하면, 평균이 NaN으로 나옴
⇒ sum = 0일 때 합계는 0, 평균은 0.0으로 출력 되도록 코드 추가하기
정수를 하나를 입력 받아서 1부터 입력받은 정수까지 짝수의 합을 출력한다.
각각의 짝수들이 합산 되었을 때의 중간 합계를 모두 출력하고 최종 합계를 마지막에 출력
문제코드 ⬇️
내가 쓴 답
< 출력한 화면 (빨간색은 입력 받은 데이터) >
정수를 입력하세요 : 13
+ 2 = 2
+ 4 = 6
+ 6 = 12
+ 8 = 20
+ 10 = 30
+ 12 = 42
1부터 13 까지 짝수의 합계 : 42
다른 방법 (2가지)
for(int i=2 ; i<=num ; i+=2)
입력받은 두 개의 정수의 공약수들을 출력하세요
예) 12, 36을 입력한 경우 1 2 3 4 6 12
공약수 (두 개의 숫자 모두 나눠떨어지는 숫자)
주어진 코드 ⬇️
내가 작성한 답
고칠 점
if(num1 > num2)
로 쓰면 되는 걸 굳이 계산할 필요가 없었다.
이중 반복문을 이용해서 구구단 1단부터 9단까지 출력하기
한 개의 단이 출력 되는 방향은 세로이든 가로이든 상관 없음
내가 쓴 답
<원하는 출력 화면>
#
##
…
#########
##########
k++;
를 넣고 안쪽 for문의 조건에 j<=k
를 넣는 방법도 있음위의 모양에서 뒤집힌 모양으로 출력하려면 (# 10개 → 1개 까지)
k=11
로 대입한 후 바깥쪽 반복문 실행코드에 k--;
를, 안쪽 for문의 조건에 j<=k-i;
를 넣는 방법도 있다.<원하는 출력 화면>
##########
#########
…
##
#
k=2;
k<i/2;
if(i%k == 0)
(count == 0)
for반복문은 정해진 횟수의 반복을 괄호 안에 미리 정의 해놓고 반복하는 특징이 있다.
while문은 정해지지 않은 횟수의 반복을 처리하는데 주로 사용한다.
특정 조건이 만족하지 않을 때까지 무한 수행
while(true) { }
-> 이 반복문은 종료되지 않는다(무한 반복)
int a=1;
while (a<=10) {
// for문과 달리 ()안에 다른 건 다 빼고, 반복을 계속할 조건만 쓴다.
System.out.println("while : "+ a);
a++;
}
// 위와 아래는 같은 코드
a=0;
while(true) {
System.out.printf("while : "+a);
a++;
if(a>10) break;
}
System.out.println();
괄호 안의 관계(비교)연산식의 참/거짓 유무를 먼저 판단한 후 반복을 계속할 지 결정 한다.
while문의 경우 위에서 코딩한 것처럼 a++;
명령에 의해 반복유지 유무가 결정되는 것보다는 특정 조건에 의해 순서와 반복횟수에 상관없이 반복이 결정되는 상황에 더 적절히 사용된다.
for문의 ()의 3가지 조건을 전부 쓰지 않아도 된다?
위의 코드 모두 정상 실행되는 코드임
사용자가 0을 입력해서 종료시킬 때까지 반복해서 입력 받기 ⬇️
System.out.printf(”%dx%d=%d”,k,i,k*i)