etc./Do it! 공부단

[Do it! 첫 코딩] 05장 진짜 코딩하려면 여기까지 알아야 해

innit 2021. 8. 28. 21:02

 

 


Ⅰ배열(Array)

  배열 사용 전 배열 사용 후
기본 int 성적1 = 55;
int 성적2 = 95;
int 성적3 = 80;
int 성적4 = 100;
int 성적5 = 75;
int 성적[] = new int [5];

성적[0] = 55;
성적[1] = 95;
성적[2] = 80;
성적[3] = 100;
성적[4] = 75;
활용 int 성적1, 성적2, 성적3, 성적4, 성적5;

코딩별.출력("성적1을 입력하세요");
성적1 = 코딩별.정수숫자입력();

코딩별.출력("성적2을 입력하세요");
성적2 = 코딩별.정수숫자입력();

코딩별.출력("성적3을 입력하세요");
성적3 = 코딩별.정수숫자입력;

코딩별.출력("성적4을 입력하세요");
성적4 = 코딩별.정수숫자입력;

코딩별.출력("성적5을 입력하세요");
성적5 = 코딩별.정수숫자입력;
int 성적[] = new int [5];

for(int N = 0; N < 5; N++){
코딩별.출력("성적" + N + "을 입력하세요.");
성적[N] = 코딩별.정수숫자입력();
}

 


Ⅱ 랜덤(Random)

※ 랜덤 숫자로 X가지 가능성 중 하나를 고르는 방법

단계 방법 코딩
1단계 랜덤 숫자를 생성한다 double 랜덤수 = Math.random();
2단계 랜덤 숫자를 정수로 만든다(10을 곱하고 소수점을 버린다) double 십곱한값 = 랜덤수 * 10;
int 소수점버림값 = (int) 십곱한값;
3단계 랜덤 숫자를 X로 나누고 그 결과값의 나머지를 이용한다 int 나머지값 = 소수점버림값 % 4;

 


Ⅲ 예외(Exception)처리

try{
String 숫자같은문자 = "홍길동";
int 정수숫자 = Integer. parseInt(숫자같은문자);
}catch(Exception e){
// 오류 발생 시 실행할 내용
}

 


Ⅳ Sleep (잠깐 정지시키기)

구구단 메시지를 만들되 한 단이 끝날때마다 1초 간격을 두는 코딩
String 구구단한단 = ""

for (int 앞수 = 1; 앞수 <=9; 앞수++){
for(int 뒷수 = 1; 뒷수 <=9; 뒷수++){
구구단한단 = 앞수 + " x " + 뒷수 + " = " + (앞수*뒷수) + "\n";
}

코딩별.출력(구구단한단);
구구단한단 = "";

try{
Thread.sleep(1000);
}catch(Exception e){
}
}

 


Ⅴ 스레드(Thread)

1. 스레딩 : 조각조각 나눠서 따로 사용할 수 있게 하는 것

2. 멀티스레딩 : 컴퓨터가 업무를 '동시'에 하는 것이 아니라 여러 가지 업무를 '번갈아'가며 하는데, 우리 눈에는 마치 동시에 하는 것처럼 보이는 것

* 멀티태스킹 : 여러 앱을 동시에 돌리는 것. (멀티스레딩은 하나의 앱 안에서 여러가지 작업이 동시에 진행되는 것)

  스레딩 사용 전 스레딩 사용 후
숫자세기.java public class 숫자세기{
String 나의이름;

숫자세기(String 나의이름){
this.나의이름 = 나의이름;
}

public void 셈하기(){
for(int N = 0; N < 5; N++){
코딩별.출력(나의이름 + N);
}
}
}
public class 숫자세기 extends Thread{
String 나의이름;

숫자세기(String 나의이름){
this.나의이름 = 나의이름;
}

public void run(){
for(int N = 0; N < 5; N++){
코딩별.출력(나의이름 + N);
}
}
}
메인.java public class 메인{
public static void main(String[] args){

숫자세기 첫번째 = new 숫자세기("첫번째");
숫자세기 두번째 = new 숫자세기("두번째");

첫번째.셈하기();
두번째.셈하기();
}
}
public class 메인{
public static void main(String[] args){

숫자세기 첫번째 = new 숫자세기("첫번째");
숫자세기 두번째 = new 숫자세기("두번째");

첫번째.start();
두번째.start();
}
}
출력물 첫번째0
첫번째1
첫번째2
첫번째3
첫번째4
두번째0
두번째1
두번째2
두번째3
두번째4
첫번째0
두번째0
두번째1
첫번째1
두번째2
첫번째2
첫번째3
두번째3
두번째4
첫번째4

Ⅵ SQL(Structured Query Language, 시퀄 또는 에스큐엘)

1. 자료를 저장하는 원시적인 방법

: 파일로 만들어서 저장하기

예시) 일기를 저장한다면 1년에 365개의 파일이 생긴다.

2. 관계형 데이터베이스(Relational Database, RDB)의 등장

: 표로 저장하는 체계

차시 시간
1 09:00~09:50 수학 음악 영어 국어 영어
2 10:00~10:50 영어 국어 화학 영어 수학
3 11:00~11:50 한자 영어 체육 수학 국사
4 13:00~13:50 세계사 수학 수학 물리 화학
5 14:00~14:50 국어 국사 물리 화학 국어
6 15:00~15:50 미술 화학 국어 세계사 세계사
7 16:00~16:50 물리 국사 국사

3. SQL(Structured Query Language, 시퀄 또는 에스큐엘)

: 데이터베이스와 대화하는 표준 약속

00고등학교 1학년 3반 4교시 월요일 과목 찾기 SELECT [월] FROM [00고등학교 1학년 3반] WHERE [차시] = 4
00고등학교 1학년 3반 모든 요일 3교시 이후 과목 없애기 DELETE * FROM [00고등학교 1학년 3반] WHERE [차시] > 3
00고등학교 1학년 3반 수요일 3교시 '수학'으로 변경하기 UPDATE [00고등학교 1학년 3반] SET [수] = "수학" WHERE [차시] = 3
00고등학교 1학년 3반 월~수요일은 수학, 목요일은 영어, 금요일은 국어로 구성된 0교시 추가하기 INSERT INTO [00고등학교 1학년 3반] ([차시], [시간], [월], [화], [수], [목], [금]) VALUES (0, "08:00~08:50", "수학", "수학", "수학", "영어", "국어")
실제로 자바에서 SQL 사용하기
데이터베이스 연결 Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://","root","root");
Statement stmt=con.createStatement();
이 부분은 복붙해서 사용함
SQL로 명령 ResultSet rs=stmt.executeQuery("selcet * from 시간표 where 차시 >4"); Select해서 나온 임시 데이터베이스 결과를 저장하기 위해 자바에서 제공하는 ResultSet 클래스의 인스턴스를 만들었음
자료 찾기 while(rs.next(){
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
}
검색된 자료를 위에서부터 아래로 하나씩 훑어가면서 찾기 위해 반복문을 사용함

* ResultSet(결과 세트)

: 실제로 저장되는 데이터베이스는 아니지만, 검색 결과 때문에 만들어지는 임시 '표'


 

728x90
반응형