딸기말차
[Java] 1. 변수, 배열, 조건 및 반복문 본문
엔코아 플레이데이터(Encore Playdata) Backend 2기 백엔드 개발 부트캠프 (playdata.io)
백엔드 개발 부트캠프
백엔드 기초부터 배포까지! 매력있는 백엔드 개발자 포트폴리오를 완성하여 취업하세요.
playdata.io
1. Java 설치 및 확인
https://docs.oracle.com/en/java/javase/11/
기존의 Java 설치와 크게 다르지 않았다. 사용하는 IDE는 이클립스이고, 자바 버전은 JDK 11을 사용했다.
약간의 차이점이 있었다면, 일반적으로 자바를 설치 시에 사용자변수에 환경변수를 추가 후 시스템변수에서
끌어다 쓰는 방식이었다면, 이번 설치는 바로 시스템변수에 JDK를 추가해 사용하는 방식을 사용하였다.
이 후 cmd를 통해 설치 된 Java를 확인하고, 간단한 리눅스 명령어를 통해 디렉토리에 대해 설명해 주셨다.
2. 변수
java 문법의 변수에 대한 설명 및 테스트이다.
변수 뿐만아니라 기본적인 규칙에 대한 설명도 같이 해주셨는데, 이 덕분에 /* 주석과 /** 주석의 차이점을 알게되었다.
1) /* : 순수 주석으로, java 문서를 만들 때 포함되지않는다.
2) /** : java 문서를 만들 때 작성한 내용이 포함된다.
/**
* @author LHS
* Variable Test
*/
/*
* public : 다른 class에 대한 접근 허가
* class : class 선언을 위한 키워드
* VarClass : 클래스명(첫 글자는 영문 대문자로 시작)
* class 파일명 == class명 == 생성자명
*/
public class VarClass {
/**
* @param args
*/
/*
* void : method 내 반환 값이 없는 경우
* main : 이름 변경 불가
* String[] : 전달되는 데이터 타입
* args : 파라미터명(매개변수명) -> 외부에서 보내는 값을 전달받아 저장하는 변수
*/
public static void main(String[] args) {
// 변수 선언 : 데이터타입 변수명; / 데이터타입 변수명 = 초기값;
// 정수(int)를 저장받는 변수 선언
int a;
int b = 10;
// 변수 사용 : 선언된 변수를 활용(사용)
a = 10;
b = 100;
// c = 300; c라는 변수 선언이 없기 때문에 오류
int d = a + b;
int f, g, h;
f = 1000;
// 숫자 관련 타입 : int(정수) / float(실수)
// 논리 관련 타입 : boolean (true / false)
// 단일 문자 : char (단일 문자는 ''로 감싸서 설정)
// 단일 문자는 원래 유니코드값
// 변수의 특징 : 한 번에 하나의 값만 저장 가능
f = 1000;
// g = 10, 20, 30;
// 변수명 : 반드시 소문자로 시작
// 예) 급여 : pay / 급여 평균 : payAvg
// 한번에 여러 개의 값을 저장하는 변수 : 배열
// 배열 선언 : 데이터타입[] 배열명 = new 데이터타입[저장 갯수] / 데이터타입 배열명[] = new 데이터타입[저장 갯수]
// 저장 갯수는 선언 이후에 변경 불가
int[] intArr = new int[5];
int[] intArr2 = {10, 20, 30, 40, 50};
intArr[0] = 100;
intArr[1] = 200;
intArr[2] = 300;
intArr[3] = 400;
intArr[4] = 500;
intArr2[0] = 10000;
int result = intArr[4] + intArr2[4];
System.out.println(result);
result = intArr[0] + intArr[1] + intArr[2] + intArr[3] + intArr[4];
System.out.println(result);
// intArr[5] = 22222;
}
}
3. 배열
여러 데이터를 한번에 관리하기 위한 배열에 관한 설명 및 테스트이다.
종종 헷갈리는 문제이지만, 배열은 항상 index가 0부터 시작한다는 것을 잘 인지하고 있어야한다.
public class ArrayClass {
public static void main(String[] args) {
int[] intArr = {10, 20, 30, 40, 50};
System.out.println("intArr의 데이터 갯수: " + intArr.length);
/*
* intArr의 데이터들을 합하고 싶을 경우
* 1. 각 index를 이용하여 각각의 값을 꺼내어(추출하여) 합
* 2. 반복문 : for(반복문 내에서 사용할 변수 선언; 반복문을 멈추기 위한 조건 ; 증감) {조건이 참이었을 경우 해야할 일들}
*/
int sum1 = intArr[0] + intArr[1] + intArr[2] + intArr[3] + intArr[4];
System.out.println(sum1);
int sum2 = 0;
for (int n = 0; n < intArr.length; n++) {
System.out.println("n의 현재값 : " + n);
sum2 += intArr[n];
}
System.out.println(sum2);
}
}
4. 조건 및 반복문
개발 진행 시 전부라고 할 수 있는 조건과 반복문에 관한 설명 및 테스트이다.
원하는 데이터를 검색하거나, 추출하거나 등 다양하게 활용할 수 있는 조건문과 다양한 데이터를 다룰 때 필수라고 할 수 있는 반복문은 뗄래야 뗄 수 없다고 생각한다.
public class ForIfTestClass {
public static void main(String[] args) {
int[] age = {27, 34, 28, 26, 41, 28, 42, 29, 29, 32};
// 1. 나이의 합(ageSum) 구하기
int ageSum = 0;
for (int i = 0; i < age.length; i++)
ageSum += age[i];
System.out.println("나이의 합: " + ageSum);
// 2. 평균 나이(ageAvg) 구하기
float ageAvg = (float)ageSum / age.length;
System.out.println("평균 나이: " + ageAvg);
// 3. 평균 나이보다 많은 인원 수(num) 구하기
int num = 0;
for (int i = 0; i < age.length; i++)
if (age[i] > ageAvg)
num++;
System.out.println("평균 나이보다 많은 인원 수: " + num);
// 문자열을 저장하고 싶을 경우 데이터 타입 : String
// 문자열은 반드시 ""으로 감싸야 한다
String t1 = "a";
String t2 = "abc";
String t3 = "ㄱ";
String t4 = "가";
String t5 = "값";
// "영문, 특수기호, 숫자" => 한 글자당 1byte
// "한글" => 2byte (참고: Oracle에선 3byte)
String[] name = {"PJH","JDW","AJH","HST","HTW","LWS","LSD","YJH","JSW","LKO"};
int[] pay = {460, 200, 250, 300, 300, 200, 350, 200, 400, 440};
// 급여가 300인 사람의 이니셜을 출력하기
for (int i = 0; i < name.length; i++)
if (pay[i] == 300)
System.out.println("급여가 300인 사람: " + name[i]);
// 급여가 300인 사람의 이니셜 출력하기2
// 문자열 연산(+), 문자열 + 숫자도 가능 -> 결과는 문자열
String initial = "";
for (int i = 0; i < name.length; i++)
if (pay[i] == 300)
initial += (name[i] + " ");
System.out.println("급여가 300인 사람: " + initial);
}
}
5. 1일차 후기
Java를 교육하는 기간이 약 8일로 진행되는데, 그게 과연 가능할까 싶었지만 1일차부터 진행하는 양을 보면 Java를 한바퀴 도는데는 지장이 없을 것 같았다.
비록 기존에 전공자였기 때문에 오늘 교육받은 내용은 알고 있었던 내용이지만, 항상 헷갈리는 클래스나 상속, 객체지향 설계, 멀티스레드 등을 며칠내로 다시 복습할 수 있다는 생각에 기대가 되기도 했다.
아쉬운 점은 이전에 Java 개발을 할 때 Intellij IDE만 사용하고 이클립스 IDE를 사용해 본적이 없어, 단축키나 인터페이스 등이 적응이 안되어 불편했던 점이다. 하지만 강사님께서 Intellij 나 다른 개발툴도 다 사용할 거라고 말씀하셨기 때문에
차차 적응해 나가며 해결할 수 있다고 생각했다.
'Bootcamp > Java' 카테고리의 다른 글
[Java] 6. 상속, Interface, 추상 클래스 (0) | 2023.06.30 |
---|---|
[Java] 5. 파일 입출력, 다중 클래스 (0) | 2023.06.29 |
[Java] 4. ArrayList, 접근 제어자, 다중 클래스 (0) | 2023.06.28 |
[Java] 3. static, final, 다중 클래스 (0) | 2023.06.26 |
[Java] 2. split, substring, 클래스, 메서드 (0) | 2023.06.25 |