[0720]
package java0720;
import java.util.Arrays;
public class arrayBasic {
public static void main(String[] args) {
//1. 배열 변수의 선언.
int[] arr; // java style.
int arr2[]; // c style.
// int arr3[5]; 자바에서는 선언시 크기 명사가 불가합니다.
//2. 배열 객체의 생성 - 실제 값들이 저장될 공간을 생성.
arr = new int[5];
System.out.println(arr); // 이렇게 해서 출력해보면 배열의 객체의 주소값이 들어감 추후설명예정
//3. 배열의 초기화 - 배열 내부에 실제 값을 저장하는 행위.
//배열의 초기화는 인덱스를 통해 수행합니다.
//인덱스란 배열 내부의 위치를 지정하는 값이며
//0번부터 시작하여 1씩 순차적으로 증가합니다. 5개일 경우 > 0~4
arr[0] = 87; // arr=87; (x)
arr[1] = 95;
arr[2] = arr[0];
arr[3] = (int) 3.14;
arr[4] = 100;
//4. 배열의 총 크기(길이) 확인. (배열변수명.length)
System.out.println("arr배열의 길이: " + arr.length);
//5. 배열에 저장된 값을 참조하는 법(사용하는 법)
System.out.println(":배열의 1번째 데이터: " + arr[0]);
System.out.println(":배열의 2번째 데이터: " + arr[1]);
System.out.println(":배열의 3번째 데이터: " + arr[2]);
System.out.println(":배열의 4번째 데이터: " + arr[3]);
System.out.println(":배열의 5번째 데이터: " + arr[4]);
//6. 배열의 반복문 처리.
System.out.println("---------------------------");
for(int idx=0; idx<arr.length; idx++) {
System.out.println("배열의 " + (idx+1)+ "번째 데이터: " + arr[idx]);
//7. 배열의 내부 요소값을 문자열 형태로 한눈에 출력하기.
System.out.println("-----------------------------");
System.out.println(Arrays.toString(arr)); //자동완성으로 해야 맨앞에 import
//8. 배열의 선언과 동시에 생성을 하는 방법
double[] dArr = new double[3]; //배열은 삭제기능 없음(크기가 고정되어서) 따로 하나를 만들어야 함
String[] sArr = new String[4];
byte[] bArr = new byte[7];
System.out.println("-------------------------");
System.out.println(Arrays.toString(dArr));
System.out.println(Arrays.toString(sArr));
System.out.println(Arrays.toString(bArr));
//배열의 생성과 동시에 초기화를 하는 방법
System.out.println("------------------------------------");
char[] letters = new char[] {'A', 'b', 'c', 'd'};
System.out.println(Arrays.toString(letters));
//선언과 동시에 초기화를 할 때 단 1번만 가능한 문법.
String[] names = {"김철수", "홍길동", "박영희"};
System.out.println(Arrays.toString(names));
// names = {"김철수", "홍길동", "박영희", "박찬호"}; (x) 수정 안됨 배열의 크기가 이미 정해졌기 때문에
names = new String[] {"김철수", "홍길동", "박영희", "박찬호"}; // 그래서 새로운 객체를 생성함
System.out.println(Arrays.toString(names));
}
}
}
package java0720;
import java.util.Arrays;
import java.util.Scanner;
public class ArrayInsert {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] names = new String[10];
for(int i=0; i<names.length; i++) {
System.out.println("이름을 입력하세요: ");
System.out.println("그만 입력하고 싶으면 '그만'이라고 쓰세요.");
String name = sc.next();
/*
- 자바에서는 문자열 동등 비교시에 == 연산자를 사용하시면 안됩니다.
- 비교문자열1.equals(비교문자열2)를 사용하셔야 합니다.
*/
if(name.equals("그만")) {
System.out.println("입력을 종료합니다.");
break;
}
names[i] = name;
System.out.print("# 현재까지 입력된 이름:");
// System.out.println(Arrays.toString(names));
for(String n : names) {
if(n == null) break; //null은 문자열 아님
System.out.print(n + " ");
}
System.out.println();
}
}
}
package java0720;
import java.util.Scanner;
public class arrayinsertquiz {
public static void main(String[] args) {
/*
1. 스캐너를 사용하여 사용자가 먹고 싶은 음식을 입력할 수 있는 환경을 제공하세요.
2. 사용자가 "그만"이라고 입력시 입력을 중지하고 사용자가 그동안 입력했던 음식을 null값을 포함시키지 말고 출력하세요.
*/
Scanner sc = new Scanner(System.in);
String[] foods = new String[100];
System.out.println("# 먹고 싶은 음식을 입력하세요.");
System.out.println("# 입력을 중지하려면 <그만>이라고 입력하세요.");
for(int i=0; i<foods.length; i++) {
System.out.print("> ");
String food = sc.nextLine();
if(food.equals("그만")) {
System.out.println("입력을 종료합니다");
break;
}
foods[i] = food;
}
System.out.print("내가 먹고 싶은 음식들: [");
for(String n : foods) {
if(n == null) break;
System.out.print(n + " ");
}
System.out.println("]");
sc.close();
}
}
package java0720;
import java.util.Arrays;
import java.util.Scanner;
public class ArrayModify {
public static void main(String[] args) {
String[] foods = {"치킨", "보쌈", "삼겹살", "피자"};
System.out.println(Arrays.toString(foods));
foods[1] = "짜장면";
foods[0] = "핫도그";
System.out.println(Arrays.toString(foods));
// 배열의 인덱스 번호 탐색.
Scanner sc = new Scanner(System.in);
System.out.println("탐색할 음식명을 입력하세요: ");
String food = sc.next();
int idx;
for(idx=0; idx<foods.length; idx++) {
if(food.equals(foods[idx])) {
System.out.println("탐색완료");
System.out.println("인덱스 번호: " + idx);
break;
}
}
if(idx == foods.length) {
System.out.println("입력한 음식을 찾을 수 없습니다.");
}
}
}
package java0720;
public class Breakexample1 {
public static void main(String[] args) {
for(int i=1; i<=10; i++) {
if(i == 6) break; // 실행문장이 1줄로 끝나면 {}할필요 없음, i가 6이 되었을때 출력문이 나오기도 전에 바로 break 되버리기 때문에
5까지만 나옴
// break 대신 컨티뉴를 하면 한번만 건너뜀
System.out.print(i + " ");
}
System.out.println("반복문 종료!");
System.out.println("----------------------");
for(int i=0; i<3; i++) {
for(int j=0; j<2; j++) {
if(i == j) break; //바깥의 조건문은 그대로 흘러가니깐 0-0에서 멈추는게 아님
System.out.println(i + "-" + j);
} // end inner for
if(i == 1) break;
} // end outer for
outer: for(char upper='A'; upper<='Z'; upper++) { // outer: 이름을 지어주는 것임
for(char lower='a'; lower<='z'; lower++) {
System.out.println(upper + "-" + lower);
if(lower == 'f') break outer; // 이름까지 넣어버리면 한번에 바깥과 안쪽 종료
} //end inner for
} // end outer for
}
}
package java0720;
import java.util.Scanner;
public class Breakexample2 {
public static void main(String[] args) {
/*
# 무한루프
- 무한 루프는 반복문의 반복 횟수를 개발자가 정확히 사전에 인지하지 못하는 상황에서 주로 사용합니다.
- 특정 조건 하에서 반복문을 강제 종료하는 형태로 구성합니다.
- 무한루프는 일반적으로 while문을 사용하며,
while의 조건식 자리에 논리상수 true를 쓰면 무한루프가 구성됩니다.
*/
int i = 0;
while(true) {
if(i == 150) break;
System.out.println(i);
i++;
}
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("숫자를 입력하세요.");
System.out.println("그만 입력하시려면 0을 입력해주세요.");
System.out.println("> ");
int num = sc.nextInt();
if(num == 0)
System.out.println("입력하신 숫자는: " + num);
System.out.println("무한루프 종료!");
}
}
}
package java0720;
import java.util.Scanner;
public class BreakQuiz {
public static void main(String[] args) {
/*
1. 두 수의 더하기를 맞추는 문제를 지속적으로 출제하는 프로그램입니다.
2. 2가지의 정수를 1 ~ 100사이의 난수를 발생시켜서 지속적으로 문제를 출제한 후 0을 입력하면 반복문을 탈출시키세요.
3. 종료 이후 정답 횟수와 오답 횟수를 각각 출력해 주세요.
*/
Scanner sc = new Scanner(System.in);
System.out.println("덧셈 연산 문제입니다.");
System.out.println("그만 하시려면 0을 입력해 주세요.");
int cCount = 0;
int aCount = 0;
while(true) {
int rn1 = (int) ((Math.random()*100) + 1);
int rn2 = (int) ((Math.random()*100) + 1); // while 안에다가 써야 계속 새로운 변수가 발생한다.
int num = (int) (Math.random()*2);
int correct; // 문제에 따라 정답을 저장할 변수를 if 밖에 선언.
if(num==0) {
System.out.printf("%d + %d = ???/n"
, rn1, rn2);
System.out.print("> ");
}else {
System.out.printf("%d + %d = ???/n"
, rn1, rn2);
System.out.print("> ");
correct = rn1 + rn2;
}
int answer = sc.nextInt();
System.out.printf("%d + %d = ???/n", rn1, rn2);
System.out.print("> ");
answer = sc.nextInt();
correct = rn1 + rn2;
if(answer == 0) {
System.out.println("입력종료");
break;
} else if(answer == correct) {
System.out.println("정답입니다!");
cCount++;
} else {
System.out.println("오답입니다!");
aCount++;
}
}
System.out.println("=================");
System.out.println("정답횟수: " + cCount + "회");
System.out.println("오답횟수: " + aCount + "회");
sc.close();
}
}
package java0720;
public class EnhancedForLoop {
public static void main(String[] args) {
String[] week = {"월","화","수","목","금","토","일"};
for(int idx=0; idx<week.length; idx++) {
System.out.println(week[idx] + "요일");
}
for(String day : week) {
System.out.println(day + "요일"); // week를 받아주는 day를 만드는 것임 맞춰주는 것
}
System.out.println("------------------------------------");
/*
1. scores라는 int 배열에 점수 데이터를 저장하세요.
ex) [98, 71, 85, 67, 100, 95]
2. 향상된 for문을 사용해서 총점과 평균을 출력하세요.
3. 평균은 double타입입니다. 소수점 둘째자리까지 출력하세요.
*/
int[] scores = {98, 71, 85, 66, 100, 95};
int total = 0;
for(int score : scores ) {
total += score;
}
double avg = total / scores.length;
System.out.printf("총점: %d점, 평균: %.2f\n", total, avg);
}
}
package java0720;
import java.util.Scanner;
public class forquiz {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
*
* 구구단 출력문
*
* - 구구단 단수를 스캐너를 통해 입력받으세요
* - 해당하는 단의 구구단을 1~9행까지 출력하세요.
*
* ex.
* "구구단을 입력하세요: 4"
* "구구단 4단"
*
* 4 X 1 = 4
* 4 X 2 = 8
*
2. 스캐너를 사용해서 구구단을 출력한 것을 2~9까지의 범위를 사용한 난수를 발생시켜 랜덤 구구단으로 변경해보세요
*/
// Scanner sc = new Scanner(System.in);
// System.out.println("단수를 입력하세요: ");
// int dan = sc.nextInt();
int dan = (int) ((Math.random() * 8) + 2);
System.out.println("구구단 " + dan + "단");
System.out.println("---------------------------");
for(int hang=1; hang<=9; hang++) {
System.out.printf("%d x %d = %d/n",dan, hang, dan * hang);
}
}
}
package java0720;
public class loopnex {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 2~9단까지 구구단 전체 출력.
for(int dan=2; dan<=9; dan++) {
System.out.println("# 구구단 " + dan + "단");
System.out.println("--------------------");
for(int hang=1; hang<=9; hang++) {
System.out.printf("%d x %d = %d/n", dan, hang, dan * hang);
}
System.out.println("--------------------");
}
}
}
package java0720;
import java.util.Scanner;
public class randomexample {
public static void main(String[] args) {
//난수(랜덤값)를 발생시키는 메서드 Math.random()
//0.0이상 1.0미만의 랜덤 실수값을 가져옵니다.(double타입)
// double rn = Math.random(); <== 기본형
// 1~10까지의 정수 난수를 발생시키고 싶어요.
int rn = (int)((Math.random() * 10) + 1);
// 로또의 범위 (1~45까지의 정수 난수)
int rw = (int)((Math.random() * 45) + 1);
int rn1 = (int) (Math.random()); //캐스팅 단축키 컨트롤+1
System.out.println(rn1);
System.out.println(rw);
}
}
[0721]
import java.util.Arrays;
import java.util.Scanner;
public class a_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 변경 전 정보: [피카츄, 라이츄, 파이리, 고부기, 버터풀]
수정할 멤버의 이름을 입력하세요.
Scanner sc = new Scanner(System.in);
String name = sc.next();
System.out.println("수정할 멤버의 이름을 입력하세요.");
String[] = {"피카츄", "라이츄", "파이리", "꼬부기", "버터풀"}
if(n = )
String n =
*/
Scanner sc = new Scanner(System.in);
String[] pokemon = {"피카츄", "라이츄", "파이리", "꼬부기", "버터풀"};
System.out.println("* 변경 전 정보: " + Arrays.toString(pokemon));
System.out.println("수정할 멤버의 이름을 입력하세요");
System.out.println("> ");
String name = sc.next();
int idx;
for(idx=0; idx<pokemon.length; idx++) {
if(name.equals(pokemon[idx])) {
System.out.println(pokemon[idx] + "의 별명을");
System.out.print("> ");
pokemon[idx] = sc.next();
// String reName = sc.next();
// pokemon[idx] = reName;
System.out.println("변경 완료!");
System.out.println("* 변경 후 정보: " + Arrays.toString(pokemon));
}
if(idx == pokemon.length) {
System.out.println("해당 이름은 존재하지 않습니다.");
}
}
sc.close();
}
}
import java.util.Arrays;
public class b_example {
public static void main(String[] args) {
//배열요소 삭제
/* 1. 지울 일단 인덱스번호 파악
arr[3] = arr[4];
arr[4] = arr[5];
arr[5] = arr[6]; //마지막값은 중복된다 13으로
int[] arr2 = new int[6]; //여기에 arr꺼 넣으면 될것
*/
int[] arr = {1, 3, 5, 7, 9, 11, 13};
System.out.println(arr.length);
for(int i=3; i<arr.length-1; i++) {
arr[i] = arr[i+1];
//arr = {1,3,5,9,11,13,13}
}
int[] temp = new int[arr.length-1];
for(int j=0; j<temp.length; j++) {
temp[j] = arr[j];
}
arr = temp; // 배열 자체가 arr로 감
temp = null; // 사라지게 만듦
System.out.println(Arrays.toString(arr));
}
}
import java.util.Arrays;
import java.util.Scanner;
public class c_ArrayDelete {
public static void main(String[] args) {
String[] pokemon = {"피카츄", "라이츄", "파이리", "꼬부기", "버터풀"};
/*
1. 스캐너 객체를 생성해서 삭제하고픈 이름을 입력 받으세요.
2. 삭제를 진행한 후 삭제후 정보를 출력해 주세요.
*/
Scanner sc = new Scanner(System.in);
System.out.println("삭제전 정보: " + Arrays.toString(pokemon));
System.out.println("삭제하고자 이름을 적어주세요");
System.out.print("> ");
String delname = sc.next();
int n;
for(n=0; n<pokemon.length; n++) {
if(delname.equals(pokemon[n])) {
System.out.println(pokemon[n] + "를 삭제합니다.");
for(int i=n; i<pokemon.length-1; i++) { //여기서 틀림
pokemon[i]=pokemon[i+1];
}
break;
}
}
if(n != pokemon.length) {
String[] temp = new String[pokemon.length-1];
for(int k=0; k<temp.length; k++) {
temp[k] = pokemon[k];
}
pokemon = temp;
temp = null;
System.out.println("*삭제 후 정보: " + Arrays.toString(pokemon));
} else {
System.out.println("해당 별명은 존재하지 않습니다.");
}
}
}
public class d_MethodExample1 {
/* 메써드는 클래스 블록 사이에다가 넣어주어야 함
# 메서드 (method)
1. 코드의 모듈화 및 재활용성을 높이기 위해 사용합니다.
2. 메서드는 선언하는 과정과 호출하는 과정으로 나누어집니다.
3. 메서드 선언 메서드 내부에서는 불가능합니다.
- 새로운 메서드의 선언은 반드시 메서드 블록 외부, 클래스 블록 내부에서만 가능합니다.
4. 메서드 호출은 메서드 내부나 생성자 블록 내부에서만 가능합니다.
- 클래스 블록 내부에서는 메서드 호출이 불가능합니다.
5. 호출하는 과정은 메서드를 사용하는 과정이며, 해당 메서드가 필요로 하는 데이터(매개값)를 메서드 내부로 전달하면서
해당 메서드는 그 매개값을 통해 처리한 결과를 호출부로 다시 반환합니다.
*/
static int calcTotal(int x) {
// int: x에 값을 입력받는 메서드 반환(return)타입[매칭된다], static 쓴 이유: 메인메서드가 static이라서 바로 쓸라고..
System.out.println("계산 기능을 수행합니다.");
int total = 0;
for(int i=1; i<=x; i++) {
total += i;
}
return total;
}
public static void main(String[] args) {
int result = calcTotal(10); // 메서드의 흐름에 따라서 1~10까지 더한 값을 total에 박아둔다.
System.out.println(result);
System.out.println(calcTotal(50));
System.out.println(calcTotal(100));
System.out.println(calcTotal(20));
System.out.println(calcTotal(30));
}
}
/*
# 매개 변수(parameter, argument)
1. 매개 변수는 메서드를 호출할 때 메서드 실행에 필요한 값들을 메서드 내부로 전달하기 위한 매개체 역할을 합니다.
2. 메서드 호출부에서 어떤 매개값을 전달하느냐에 따라 메서드의 실행 결과가 달라집니다.
3. 매개값을 몇개 전달받아 사용할지는 메서드를 선언할 때 선언부에서 ()안에 미리 갯수와 타입을 지정해야 합니다.
4. 매개변수는 하나도 선언하지 않을 수 있으며, 이 때는 메서드 선언부의 () 내부를 비워둡니다. 그리고 호출시에도 ()를 비워서 호출합니다.
*/
public class e_MethodExample2 {
//x~y까지의 누적 총합 구하기
static int calcRangeTotal(int x, int y) {
int total = 0;
for(int i=x; i<=y; i++) {
total += i;
}
return total;
}
static String selectRandomFood() {
double rn = Math.random();
if(rn > 0.66) {
return "치킨";
} else if(rn > 0.33) {
return "족발";
} else {
return "삼겹살";
}
}
static int calcNumberTotal(int[] nums) { //nums는 변수 이름이다
int total = 0;
for(int n : nums) {
total += n;
}
return total;
}
public static void main(String[] args) {
int result = calcRangeTotal(4, 7); // 먼저 calcr 입력하고 컨트롤 스페이스 누르면 자동으로 만들어진다. 그후에 int
System.out.println(result);
System.out.println("오늘 점심 뭐먹지? -> " + selectRandomFood()); //매개값 없는 메소드
//정수 n개를 전달하면 정수 n개의 총합을 리턴하는 메서드. <==매개변수 여러개 쓰는것 보다 배열 사용해야 할것임
int[] arr = {10,20,30,40,50};
int sum = calcNumberTotal(arr);
System.out.println("sum의 값" + sum);
sum = calcNumberTotal(new int[] {1,3,5,7});
System.out.println("sum의 값: " + sum);
}
}
/*
# 반환값, 반환 유형 (return value, return type)
1. 반환값이란 메서드의 실행결과값을 의미함
2. 매개변수는 여러개 존재할 수 있지만 반환값은 오직 한개만 존재해야 합니다.(return)
3. return이라는 키워드를 사용하여 return 뒤에 전달할 값을 지정합니다.
4. 전달되는 값의 데이터 타입을 반환 유형이라고 하며 메서드를 선언할 때 메서드 이름 앞에 반드시 반환 유형을 명시해야 합니다.
5. 반환값이 있는 메서드는 호출문이 하나의 값으로 처리되기 때문에 반환값을 다른 변수에 대입할 수 있고, 다른 메서드의 매개값으로도 사용이 가능합니다.
6. 모든 메서드가 반환값이 있는 것은 아닙니다. 메서드 실행 후에 반환할 값이 없다면 return을 사용하지 않아도 됩니다.
7. 이 때는 반환 유형을 메서드 선언시에 비워두면 안되고 반드시 void라는 키워드를 작성해 주셔야 합니다.
8. 모든 메서드는 return을 만나면 강제로 메서드가 종료됩니다. 따라서 조건 없이 return문 아래에 코드를 작성할 수 없습니다.
void 메서드에서 return은 탈출 기능으로 사용합니다.
*/
public class f_MethodExmaple3 {
static int add(int n1, int n2) {
return n1 + n2;
// System.out.println("야~"); --> 여기서 출력 불가 (리턴이 끝이기 때문)
}
static int[] operateTotal(int n1, int n2){
return new int[] {n1+n2, n1-n2, n1*n2, n1/n2}; //new 쓰는 이유: 없던거 새로 만들어야하니깐
}
static double[] calcArrayTotal(int[] nums) {
int sum = 0;
for(int n : nums) {
sum += n;
}
double avg = (double)sum / nums.length;
return new double[] {sum, avg};
}
// void 사례
static void multi(int n1, int n2) {
int result = n1 * n2;
System.out.printf("%d x %d = %d\n", n1, n2, result);
}
// void 사례 2
static void divide(int n1, int n2) {
if(n2 == 0) {
System.out.println("0으로 나누면 안돼요~!");
return;
}
int result = n1 / n2;
System.out.printf("%d / %d = %d\n", n1, n2, result);
}
public static void main(String[] args) {
int r1 = add(3, 8); // add(3,8) 이라는 값은 int r1 = 11; 과 같음
System.out.println(r1);
// int r2 = add(10, 15); int r2 = 25;
int r2 = add(add(4,6), add(8,7));
int[] totalResult = operateTotal(20, 5);
System.out.println("20 + 5=" + totalResult[0]);
System.out.println("20 - 5=" + totalResult[1]);
System.out.println("20 * 5=" + totalResult[2]);
System.out.println("20 / 5=" + totalResult[3]);
/*
- 정수배열 하나를 전달받아 해당 배열 내부에 있는 모든 정수의 합계(int)와 평균(double)을 배열에 담아 리턴하는 메서드를 선언하고 호출하세요.
- 메서드 이름은 calcArrayTotal로 정의하겠습니다.
*/
System.out.println("------------------------------");
int[] numbers = {57, 89, 78, 91, 93, 47};
double[] result = calcArrayTotal(numbers);
System.out.printf("합계 %d점, 평균: %.2f점\n", (int)result[0], result[1]);
multi(10,7); // void 사례 결과 cf. [int r3 = multi(10, 5);] 이건 안됨 리턴이 없기 때문에 단순 출력 매서드이기 대문에 활용 못함
// 반환값이 없는 void타입의 메서드는 값이 돌아오지 않기 때문에 실행 결과를 변수에 저장할 수 없습니다.(반드시 단독 호출 사용)
multi(add(3,1), add(6,3)); //얘는 출력됨
// add(multi(4,4), multi(5,5)); 얘는 안됨 반환값이 없기때문에
divide(10, 0);
}
}
public class g_MethodQuiz {
static int sum(int n) {
int total = 0;
System.out.print(n + "의 약수:");
for(int i=1; i<=n; i++) {
if(n % i == 0) {
System.out.print(i + " ");
total += i; // 나누어 떨어지면 약수이므로, 합계에 누적.
}
}
System.out.println();
return total;
}
public static void main(String[] args) {
/*
- 매개값을 하나 받는 메서드를 정의하세요.
- 그 메서드는 매개값을 받아서 해당 정수의 약수를 가로로 모두 출력하고, 해당 값의 약수의 총 합을 구해서 결과값을 리턴하는 메서드 입니다.
- 해당 메서드로 10의 약수의 총 합과 30의 약수의 총 합을 구해보세요.
*/
System.out.println("10의 약수의 총합: " + sum(10));
System.out.println("======================");
System.out.println("30의 약수의 총합: " + sum(30));
}
}
자바 실습 코딩(기본예제) pt.3 - object 등 (2) | 2022.06.01 |
---|---|
자바 실습 코딩(기본예제) pt.2 (0) | 2022.06.01 |
JAVA 기본문법 pt. 4 - 표준 입 출력, 스캐너 API와 제어문 (0) | 2022.06.01 |
JAVA 기본문법 pt. 3 - 형변환과 연산자 (0) | 2022.06.01 |
JAVA 기본문법 pt. 2 (0) | 2022.06.01 |
댓글 영역