어제는 아파트 공사때문에 학원을 갔지만 오늘은 백신 맞아야해서 안나감
아직 괜찮은데?
어젯밤하고 오늘 아침까지 해서 BufferedWrite랑 BufferedReader 사용법을 알아옴
오늘 쓰면서 연습해야지
오늘은 System.out.println 없다!!!!!!!
while (반복조건){
반복 실행 내용
}
do {
반복 실행 내용
} while (반복 조건); // 세미콜론을 찍어줘야함

계속해서 돌아가는 코드 밑에 있어서 실행이 안된다.
Unreachable code
사용할 수 없는 코드, 조건이 맞지않는 코드
/*
* i 값이 123456이 될 때 반복문이 종료되도록 해보세요
*/
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
boolean run = true;
int i =1;
while (run) {
bw.write(String.valueOf(i)+"\n");
i++;
if (i == 12345)
run = false;
}
bw.write(String.valueOf(i)); // while 조건이 끝이 안나서 실행 될리가 없는 코드
bw.flush();
bw.close();
/*
* while문을 이용해 1부터 10까지 합계 출력
*
*/
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = 1, result = 0;
while (num <= 10) {
if (num <= 9) {
bw.write(String.valueOf(num) + "+");
result += num;
num++;
} else {
result +=num;
bw.write(String.valueOf(num) + "=" + result+"\n");
num++;
}
}
bw.flush();
bw.close();


정수는 실수로 변환은 다른 코드가 없어도 가능하지만
실수를 정수로 변환은 (int)를 앞에 붙여서 변환을 해줘야한다
실수를 정수로 교환을 할 때는 무조건 소수점 이하는 버린다
random()메서드는 0~1의 작은 실수를 출력해서 (int)를 사용하면 0이 나온다.
반올림이 아니라 소수점이하는 버린다. 그래서 (int)를 사용하면 0이 나온다.
그래서 (int)를 하기 전에 *10을 사용해서 정수부분만 사용하자
/*
* Random 메서드
* 특정 범위를 지정하면 해당 범위 내에서 숫자를 무작위로 발생시킴
* 1~10 사이의 정수 하나를 발생
* (int) (Math.random() * 10) + 1
*
*/
System.out.println((int) (Math.random() * 10) + 1); // (int) 실수를 정수로 형변환
System.out.println(Math.random()); // Math 클래스의 random()메서드 호출
// 우리는 정수가 필요하기 때문에 실수를 정수로 바꾸는 과정이 필요함.
// 실수 (double) -> 실수(int) : 형 변환
// 실수 8byte > 실수 4byte : 강제 형 변환(casting)
System.out.println((int) (Math.random() * 10)); // 0~9 정수
System.out.println((int) (Math.random() * 10) + 1); // 1~10 정수
System.out.println((int) (Math.random() * 45) + 1); // 1~45
int intvar = 10;
double doublevar = 1.234;
doublevar = intvar; // 정수 > 실수 형변환
System.out.println(doublevar);
intvar = (int) doublevar; // 실수 > 정수 형변환
System.out.println(intvar);
정수(int) -> 실수 (double) : 형 변환
실수 8byte > 정수 4byte : 강제 형 변환(casting)
실수는 8byte 정수는 4byte라서 정수에서 실수를 가는 형변환은 다른 조치가 없이도 가능
하지만 실수에서 정수로 가는 형 변환은 byte가 줄어드는 형 변환이라서 (int) 라는 코드??가 필요하다.
하지만 (int)를 사용하면 소수점 밑으로 반올림이 아니라 제거다.
/*
* 주사위(1~6)가 있을 때 주사위를 계속 던져서 6이 나오면 종료가 되는 프로그램을 while로 작성해보시오
*/
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = 0, i = 0;
boolean run = true;
bw.write("횟수 : "+String.valueOf(i)+"\n");
while (run) {
num = (int) ((Math.random() * 6) + 1);
i++;
bw.write("횟수 : "+String.valueOf(i)+"\n");
if (num == 6) {
bw.write("주사위 : " + String.valueOf(num) + " 횟수 : " + String.valueOf(i)+"에 종료합니다.\n");
run = false;
}
}
bw.flush();
bw.close();
/*
* 2개의 주사위를 던겨서 합이 5일 때 종료하는 프로그램
*/
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num1 = 0, num2 = 0, i = 0, result = 0;
boolean run = true;
bw.write("횟수 : " + String.valueOf(i) + "\n");
while (run) {
num1 = (int) ((Math.random() * 6) + 1);
num2 = (int) ((Math.random() * 6) + 1);
result = num1 + num2;
i++;
bw.write("횟수 : " + String.valueOf(i) + " 값 : " + String.valueOf(result) + "\n");
if (result == 5) {
bw.write("횟수 : " + String.valueOf(i) + " 주사위1 : " + String.valueOf(num1) + " 주사위2 : " + String.valueOf(num2) + " 합 : "
+ String.valueOf(result) + "에 종료합니다.\n");
run = false;
}
}
bw.flush();
bw.close();
소스 관리(형상 관리) 도구
설치하는 거 어려움 잘 따라해야함
git 설치
git hub 설치
프로젝터 생성> 프로젝트 이름 오른쪽클릭 > show in> system explorer
>자바 폴더로 들어가서 위에 파일 > window powershell
git init
git config --local --list
git config --global user.name 'seonjangwon'
git config --global user.email 'wkddnjs740@naver.com'
git config --global --list
차례대로 입력

확인
네임, 이메일 지우는 법
git config --global --unset user.name
git config --global --unset user.email
이제 git hub홈페이지로 들어가서
git hub의 내 정보에서 your repositories에서 new를 눌러서 만들어서

다 만들고 나면 이런 페이지가 뜬다.

여기서 빨간 부분을 복사해서 윈도우 파워셀에 입력
git config --local --list 을 입력해서 확인

파워셀에
git status를 입력

빨간색이 수정된 파일들
깃허브랑 지금 파일이랑 다른애들
git add .입력( . 중요)

git commit -m ‘나의 첫 커밋’ 입력

git branch -M main입력
git push -u origin main
git push -u origin master
을 입력하면 처음으로 설정하는 사람은

의 크롬 페이지가 뜨는데 초록색을 눌러주면 된다.

branch를 안하면 master에 해야 하고 main에 사용하려면 git branch -M main입력을 해줘야한다.
이제 처음 등록 끝!
이제부터는 파일을 생성하고나서 올릴 때
이클립스로 파일을 추가하고 git status를 치고

git add .
git status

git commit -m ‘test2’

git push -u origin main

한번더 클래스를 수정을 해보면

git add .
git status
git commit -m '뭐가 수정된 것인지 쓰자'
git push -u origin main
위 과정을 하고 깃 허브에 들어가보면

클래스 안에서 뭐가 수정된 것인지 나온다
빨간줄은 삭제
초록줄은 추가
import java.io.*; 또는
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
를 먼저 해야함
메인 메서드 앞에서 throws IOException를 하거나 try catch를 해야함
하지만 try catch는 모르지!!!!
import java.util.StringTokenizer;을 먼저 해줘야한다.
String var = “”; 을 하나 선언해주고 (입력으로 받는다면)
StringTokenizer st = new StringTokenizer(var);을 사용해서 var 변수에 있는 문자열을 띄어쓰기로 구분해서 나눠준다.
num = Integer.parseInt(st.nextToken()); = nextToken()을 이용해서 var에서 첫자리를 가져오고 문자열로 가져왔으니 Integer.parseInt()를 이용해서 정수로 형 변환을 시켜준다.
오늘 BufferedWriter와 BufferedReader와 StringTokenizer를 사용해서 for문에 있는 못푸는 문제를 다 풀어서 for문에 있는 문제를 다 풀었다.ㅎㅎ
처음에 시간초과 나와서 보니까
bw.flush()메서드를 for문 안에 넣어서 오래걸리는 거 였다.
이제 while문으로 가야지 while문은 기본적으로 배열?을 쓰던데
StringTokenizer공부해서 다행이네
IntTokenier은 없나...?