티스토리 뷰
Java는 기본적으로 100% 상속이 되고 있으며 최상위에 Object를 상속받고 있음.
unsigned를 명시하면 부호를 없앨 수 있으며 양의 범위를 확장할 수 있음.
signed는 기본적으로 적용되어 있음.
unsigned는 정수타입에만 사용이 가능함.
a!=b 와 a=!b의 차이점
a!=b : a와 b는 다르다.
a=!b : b가 아닌 것을 a에 할당함.
break 코드는 단독 if문에는 사용할 수 없으며 반복이 진행되는 경우에만 사용이 가능함.
반복문 내부에서 if문을 통해 break 코드를 사용하여 반복을 멈추는 것은 가능하다.
continue 코드와 같이 loop문에 사용됨.
continue 코드는 반복문 내에서만 사용할 수 있으며, 반복이 진행되는 도중에 continue 코드가 작동하면 반복문의 끝으로 이동하여 다음 반복으로 넘어감.
<-- -->
while 반복문 : for 반복문과 다르게 조건식과 수행해야할 중괄호 블럭만으로 구성되어 있으며 카운터가 필요한 경우에는 while 반복문보다는 for 반복문을 사용하는 것이 유리함.
while (조건식) { (조건식의 연산결과가 참인 경우 수행될 문장) } |
for 반복문으로 작성한 것을 while 반복문으로 수정하는 것도 가능하다.
아래는 어제 if 반복문으로 만든 종이접기를 while 반복문으로 바꾼 것이다.
class Paper { public static void main(String[] args) { int j = 0; int i = 1; while (i <=500) { System.out.println("접은 횟수 :" + j); System.out.println("사각형 갯수 :" + i); j += 1; i *= 2; } } } |
이중for문이 존재하는 것처럼 while 반복문 내부에도 while 반복문을 적을 수 있다.
이를 이중while문이라고 한다.
while (조건식1) { while(조건식2) { (조건식의 연산결과가 참인 경우 수행될 문장) } } |
아래는 이중while문을 이용하여 다시 작성한 구구단의 예제이다.
class While { public static void main(String[] args) { int i = 1; while (i<=9) { int j = 2; while (j<=9) { System.out.print(j + "*" + i + "=" + i*j + "\t"); j++; } System.out.println(""); i++; } } } |
<-- -->
do while 반복문 : while 반복문을 변화한 것으로 구조는 while 반복문과 같으나 중괄호 블럭을 먼저 수행한 후에 조건을 판단하는 것이 while 반복문과의 차이점이다.
do { 조건식의 연산결과가 참일 경우에 수행될 문장 } while (조건식); |
아래의 코드는 do while 반복문을 사용하여 작성한 계산기이다.
어제 작성한 계산기와의 차이점은 마지막에 재사용 여부를 물어보고 다시 시작을 할 수 있다는 차이점을 갖고 있다.
import java.util.*;
class DoWhile { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String loop;
do { System.out.println("숫자1 입력"); int a = sc.nextInt();
System.out.println("연산자 입력"); String oper = sc.next();
System.out.println("숫자2 입력"); int b = sc.nextInt(); double c;
// 연산자 확인 switch (oper) { case "+" : c = a + b; System.out.println(a + oper + b +"= "+ c ); break; case "-" : c = a - b; System.out.println(a + oper + b +"= "+ c ); break; case "*" : c = a * b; System.out.println(a + oper + b +"= "+ c ); break; case "/" : c = a / b; System.out.println(a + oper + b +"= "+ c ); break; default : System.out.println("not operand"); } System.out.println("계속할거? : y | n"); loop = sc.next(); } while (loop.equals("y") |loop.equals("Y")); } } |
처음에 String 타입의 loop라는 변수를 선언하고 조건식이 참일때 실행되는 문장에 어제 만들어둔 계산기를 넣어둔다.
그리고 계산이 끝난 후에 재사용의 여부를 물어보고 loop변수에 y(=Y)나 n(=N)를 입력할 때, y(=Y)를 입력이 되면 계산기를 다시 이용하게 만들었다.
<-- -->
배열(Array)이란?
1. 동일한 데이터 타입을 메모리 상에 순차적으로 확보한 것.
2. 참조(reference) 타입의 변수 > 동적 메모리에 할당이 된다.
3. 순차적으로 일괄처리를 할 수 있음.
4. 메모리의 추가, 삭제가 힘든 특징이 있음.
5. 선언과 동시에 생성하는 것이 가능함
배열의 선언
(변수의 타입) [](변수의 이름) (변수의 타입) (변수의 이름)[] |
배열의 생성
(변수의 타입) [](변수의 이름) (변수의 이름) = new (변수의 타입)[(배열의 크기)]; |
배열의 선언과 동시에 생성
(변수의 타입) [](변수의 이름) = new (변수의 타입)[(배열의 크기)]; (변수의 타입) (변수의 이름)[] = new (변수의 타입)[(배열의 크기)]; |
아래는 배열을 이용해서 1명의 성적을 계산하는 코드를 만들어보았다.
우선 배열은 하나의 타입의 변수만 받을 수 있기에 이름은 별개로 지정하였으며 각각의 성적을 입력하면 총점과 평균을 구하도록 설계하였다.
package Array; import java.util.*; public class Calculator { public static void main(String[] args) { //field String name; int []score = new int[3]; int kor, eng, math; double total; double avg; Scanner sc = new Scanner(System.in); //input System.out.println("input your name"); name = sc.next(); System.out.println("input your score(kor, eng, math)"); for(int point=0; point<score.length; point++) { score[point]=sc.nextInt(); } for(int point=0; point<score.length; point++) { total+=score[point]; } kor = score[0]; eng = score[1]; math = score[2]; avg = total /(score.length); System.out.println("name :"+name); System.out.println("kor :"+kor ); System.out.println("eng :"+eng); System.out.println("math :"+math); System.out.println("total :"+total); System.out.println("average :"+avg); } } |
<-- -->
다차원 배열
위에서 본 배열은 1차원 배열이다. 하지만 1차원 배열이 아니라 다차원을 배열을 만들 수 있다.
앞에서 본 배열에서 대괄호 여러쌍을 추가해주면 다차원 배열을 만들 수 있다.
아래의 예시는 2차원 배열의 선언이다.
int [][]arr = new int[3][5]; > 3 * 5 사이즈의 배열 |
다차원 배열은 하나의 배열에 다른 배열이 들어간 것이므로 길이가 다른 배열을 넣는 것 또한 가능하다.
int [][]arr = new int[3][]; arr[0] = new int[2]; arr[1] = new int[3]; arr[2] = new int[4]; |
2차원 배열을 이용한 성적계산기를 만들어보았다.
처음에 몇 명인지 확인을 해서 배열의 크기를 결정하게 만들며
앞서 배운 do while 반복문을 사용해서 마지막에 재사용 유무를 물어본다
package Array; import java.util.*;
public class MultiDimensionArray {
public static void main(String[] args) {
//field Scanner sc = new Scanner(System.in); String loop; String []sub = {"국어","영어","수학", "총점", "평균"};
do { System.out.println("몇 명의 성적을 계산할 것인가?"); int people = sc.nextInt();
String []name = new String[people]; double [][]score = new double[people][5];
for(int i=0; i<people; i++) { System.out.println("이름을 입력하십시오"); name[i]=sc.next(); System.out.println("국어, 영어, 수학 순으로 성적을 입력하십시오."); for(int j=0; j<score[i].length-2; j++) { score[i][j]=sc.nextInt(); score[i][3]+=score[i][j]; } score[i][4]=score[i][3]/(score[i].length-2); }
for(int i=0; i<people; i++) { System.out.println(name[i]); for(int j=0; j<score[i].length; j++) { System.out.println(sub[j]+":"+score[i][j]); } System.out.println(); } System.out.println("계속 진행할 것인가? : y | n"); loop = sc.next(); } while (loop.equals("y") |loop.equals("Y"));
}
} |
'it분야의 끄적끄적 > Java 계열의 프로젝트 및 글' 카테고리의 다른 글
Java 강의 6일차 (0) | 2020.01.20 |
---|---|
Java 강의 4~5일차 (0) | 2020.01.16 |
Java 강의 3일차 (0) | 2020.01.15 |
JAVA 강의 1일차 (0) | 2020.01.13 |
- Total
- Today
- Yesterday
- 군집분석
- 서포트벡터머신
- PCA
- dimension reduce
- 데이터전처리
- CA
- PAM
- K-means clustering
- EDA
- ML
- Partitioning Around Medoids
- Clustering Analysis
- java
- 머신러닝
- 차원축소
- 주성분분석
- SVM
- 이상치처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |