휴가 끝난 후 이때까지 배운 것 복습!

10진수 <-> 2진수 변환
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1
10진수 5를 2진수로 표현하면?
00000101
192 = 11000000
168 = 10101000
7 = 00000110
140 = 10001100
자주 쓰던 계산기이지만, 프로그래머 기능이 있는지는 몰랐다
HEX = 16진수
DEC = 10진수
OCT = 8진수
BIN = 2진수
중첩 for 문
for 문 내부에 또 다른 for문을 기술하는 것
- 바깥쪽 for 문과 안쪽 for 문으로 구분
=> 바깥쪽 for문이 한 바퀴 돌 때, 안쪽 for 문은 여러 바퀴를 돈다.
=> 즉, 안쪽 for문의 반복 횟수가 바깥쪽 for문 반복 횟수보다 많다
= 안쪽 for문 반복 횟수 = 안쪽 for문 횟수 * 바깥쪽 for 문 횟수
ex) 시계의 분침이 바깥쪽 for문으로 0 ~ 59까지 60번 반복할 때
분침 1바퀴 당 초침이 안쪽 for 문으로 0 ~ 59까지 60 반복
= 1시간(60분) 당 초침 반복 횟수 = 분침횟수(60) * 초침횟수(60)
<기본 문법>
for(초기식1; 조건식1; 증감식1) { //바깥쪽 for 문
문장1; // 바깥쪽 for문의 조건식1이 true 일 때 실행되는 문장
for(초기식2;조건식2;증감식2) { // 안쪽 for문
문장 2;
// 반복 횟수 = 안쪽 for문 반복횟수 * 바깥쪽 for문 반복횟수
}
문장 3; // 안쪽 for 문 반복이 종료된 후 실행되는 문장
}
바깥쪽 for 문 : i 값이 1 ~ 3 까지 1씩 증가하면서 반복
for(int i = 1; i <= 3; i++) { //바깥쪽 for 문
System.out.println("i = "+ i); //3번 반복함
for(int j = 1; j <= 2; j++) { //안쪽 for문
System.out.println("-------> j = " + j);
// 반복 횟수 = j횟수 (2) * i횟수 (3) = 6회
}
//안쪽 for문 반복이 종료된 후 실행되는 문장
System.out.println("---------안쪽 for문 반복 종료");
}
//바깥쪽 for문 반복이 종료된 후 실행되는 문장
// 바깥쪽 for문 i값이 1 ~ 10 까지 반복할 동안
// 안쪽 for문 j 값을 1 ~ 5 까지 반복하면서 i 와 j 값을 출력
for(int i=1;i<=10;i++) {
System.out.println("i = " + i );
System.out.println("----안쪽 for문 반복 시작----");
for(int j = 1;j<=5;j++) {
System.out.println("j =" + j);
}
System.out.println("----안쪽 for문 반복 종료----");
}
타이머 만들기
타이머 (xx분 xx초)
- 시(hour) : 0 ~ 23시
- 분(min) : 0 ~ 59분
- 초(second) : 0 ~ 59초
<출력 예시>
-0분 0초
-0분 1초
...생략...
-0분 59초
-1분 0초
-59분 58초
-59분 59초
for(int min = 0; min <=59;min++) {
for(int sec = 0; sec <=59; sec++) {
System.out.println(min + "분" + sec + "초");
}
}
for문을 활용한 구구단 전체 출력 (2단 ~ 9단)
<2단>
2*1 = 2
2*2 = 4
2*3 = 6
...
9*9 = 81
=> 단(dan)이 2~9까지 1씩 증가 ( 바깥쪽 for 문 )
이 때, 각 단마다 i 값이 1~9까지 1씩 증가
for(int dan = 2; dan <=9;dan++) {
System.out.println("<"+dan+"단>");
for(int i = 1; i<=9; i++) {
System.out.println(dan + "*" + i + "=" +(dan*i));
}
}
printf 로 출력하기
for(int dan = 2; dan <=9;dan++) {
System.out.printf("< %d 단>\n", dan);
for(int i = 1; i<=9; i++) {
System.out.printf( "%d * %d = %d\n",dan, i, dan*i);
\n 넣어도 되고,
system.out.println(); 을 넣어줘도 됨.
주사위 굴리기
주사위 2개를 굴려서 주사위 눈의 합이 6일 때, 두 주사위 값을 출력
ex) 주사위 1 주사위 2 합계
1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6
주사위 눈 : 1 ~ 6
주사위 (dice1, dice2) 변 수 값 1~6 , 1씩 증가 반복,
주사위 눈의 합계가 6인지 판별하여 6일 때, 주사위 눈의 값을 출력 할 것.
판별해야하므로 if 문이 같이 사용됨.
for(int dice1 = 1;dice1<=6;dice1++) {
for(int dice2 = 1;dice2<=6;dice2++) {
if(dice1 + dice2 == 6) {
System.out.println(dice1 + "+" + dice2 + "=" +"주사위 합은 6이다");
}
}
}
for(int dice1 = 1;dice1<=6;dice1++) {
for(int dice2 = 1;dice2<=6;dice2++) {
if(dice1 + dice2 == 6) { //주사위 눈의 합이 6인지 판별
//두 주사위 눈의 합이 6일 때만 출력 실행.
System.out.println(dice1 + " + " + dice2 + " = " +"주사위 합은 " + (dice1+dice2) + " 이다");
}
}
}
'BackEnd > Java' 카테고리의 다른 글
0824 JAVA - 클래스와 객체 , 인스턴스 (0) | 2022.08.24 |
---|---|
0818 JAVA - WHILE 문 ~ DO WHILE 문 (0) | 2022.08.18 |
8/10 JAVA - FOR 반복문 , 누적 (0) | 2022.08.10 |
8/1 JAVA - 자바의 기본 데이터 타입 (0) | 2022.08.01 |
[JAVA] print, println, printf의 구분 (0) | 2022.07.29 |