if, switch, for, while
학습 진행 및 완료 상황
- Java 문법 뽀개기 1주차 1-11 반복문 퀴즈 (진도율 40%)
- Chapter 4 조건문과 반복문
학습 중 발생한 이슈 / 고민 또는 이를 해결한 내용
지금까지 단순 출력?만 해와서 잘 몰랐는데 반복문을 작성하자 갑자기 노트북에서 발열이 느껴졌다..
조금만 힘을 내.. 나의 맥북에어..
쿨러를 주문했다.
특이사항(아이디어 메모등)
같은 문제, 같은 값을 찾는다 하더라도 그 방법은 무궁무진하다는걸 느꼈다.
과제
연습문제 4-1
- int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식
x > 10 && x < 20 - char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식
ch != ' ' && ch != '\t' - char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식
ch == 'x' || ch == 'X' - char형 변수 ch가 숫자('0'~'9')일 때 true인 조건식
'0' <= ch && ch >= '9' - char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식
('a' <= ch && ch >= 'z') || ('A' <= ch && ch >= 'Z') - int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을 때 true인 조건식
year % 400 == 0 || (year % 4 == 0 && year % 100 != 0) - boolean형 변수 powerOn이 false일 때 true인 조건식
powerOn == false 또는 !powerOn - 문자열 참조변수 str이 "yes"일 때 true인 조건식
str.equals("yes")
4-2 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오. sum = 73
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 20; i++) {
int value = i + 1;
if(value % 2 != 0 && value % 3 != 0){
sum += value;
}
}
System.out.println("sum = " + sum);
}
4-3 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)의 결과를 계산하시오. result = 220
public static void main(String[] args) {
int sum = 0;
int result = 0;
for (int i = 0; i < 10; i++) {
sum += i + 1;
result += sum;
}
System.out.println("result = " + result);
} // result = 220
4-4 1+(-2)+3+(-4)+... 과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이 100이상이 되는지 구하시오. 199번째
public static void main(String[] args) {
int sum = 0; // 총합을 저장할 변수
int i = 0; // 1씩 증가하면서 몇번째 수를 찾기 위한 변수
while(sum < 100){
i++;
if(i % 2 != 0){ //홀수일땐 값을 더하고 짝수일땐 값을 뺀다.
sum += i;
} else {
sum -= i;
}
}
System.out.printf("총합이 100이상 되려면 %d번째까지 더해야 합니다.%n", i);
} // 결과 : 총합이 100이상 되려면 199번째까지 더해야 합니다.
나는 꼼수?로 모든 짝수 값을 빼는 방식으로 답을 찾았지만
왠지...
출제자의 의도와 다른 것 같아 다른 방식으로도 만들어보았다.
public static void main(String[] args) {
int sum = 0; // 총합을 저장
int sign = 1; // 부호를 바꾸는데 사용
int num;
for (int i = 1; true; i++, sign = -sign) {
// 증감식에서 sign에 -를 곱해 부호를 바꿔주고 1씩 증가하는 i와 곱해 num에 저장해준다.
// 1+(-2)+3+(-4)+...
num = i * sign;
sum += num;
if (sum >= 100) {
break;
}
}
System.out.println(sum); // 100
System.out.println(num); // 199
}
오늘의 한줄
어제의 나보다는 한발짝 더 나아간 것 같다.
'항해 99 온보딩 커리큘럼' 카테고리의 다른 글
[Java언어기초 1주차] 객체지향 II (0) | 2023.03.12 |
---|---|
[Java언어기초 1주차] 作心三日 [객체지향] (0) | 2023.03.11 |
[Java언어기초 1주차] 어느날 갑자기 글이 안 올라오면 당첨된 겁니다. [배열] (0) | 2023.03.10 |
[Java언어기초 1주차] 연산자는 누구인데 날 괴롭히나.. [연산자] (0) | 2023.03.08 |
[온보딩 커리큘럼/언어기초 1주차] 항해 99 사전 스터디 첫 날!! (0) | 2023.03.07 |