목차 | |
1. | 설정 |
2. | 기초 |
3. | 느낀 점 |
1. 설정
▣ 다운로드
◈ jdk 다운로드
◈ eclipse 최신버전 다운로드(내장 jdk를 포함하고 있음)
- java 파일을 저장해놓을 나만의 폴더를 만들어 놓기
- web site를 개발 후 배포(프로그램에서 실행이 아니라, 도메인에 의해서 실행(tomcat(server))))
- java - compiler -> 컴파일러가 번역 (원본 소스 파일이 있어야 함. 완성된 형태로..)
- javascript -> 인터프리터 언어 (원본 소스가 완성된 형태가 아여도 번역가능.) => 줄단위 번역
※ Java 폴더 복사본 유의점
.metadat 폴더는 Eclipse 설정을 할 때 생기는 폴더로 컴퓨터마다 폴더의 내용이 다르기에 복사해가도 다른 컴퓨터에서는 필요하지 않은 내용임
▣ 설정
◈ 시스템 환경 변수 편집(window창)
- 환경변수를 설정하는 이유
- 자신의 프로그램이 아닌 다른 프로그램에서 자신을 인식할 수 있게 하기 위함
- web 연동 시 tomcat(server) 설치 => jdk를 인지해야 함.
- 새로 만들기 -> JAVA_HOME(C:\Program Files\Java\jdk-11)
- path => 새로 만들기 => %JAVA_HOME%\bin
- 환경변수 등록 후 인지되었는지 확인
cmd => java -version
◈ 시스템 환경 변수 편집(window창)
- java project 생성
- jdk => 내장 JDK -> 내가 설치한 JDK 11로 변경
- compiler 설정 -> JDK 버전과 동일 버전으로 설정
- window -> preferences (툴 설정) -> encoding => web 연동 UTF-8
- project 설정 -> project에서 우클릭 properties
- console 표시
2. 기초
▣ Test01
package day01;
public class Test01 {
public static void main(String[] args) {
// 한 줄 주석
/* 여러줄 주석 */
// System.out.println("콘솔 출력 테스트") => sysout (ctrl + space)
// ctrl + F11 실행 단축키
System.out.println("Hello World~!!");
System.out.println("그럼 제가 선배 맘에 ~");
// let const javascript
// 타입별로 변수 유형을 결정해야 함.
// String 문자형 => 기본타입이 아님. 참조형 타입
// 변수타입 8가지
// 변수는 범위(scope) { } 를 벗어나면 변수는 사용할 수 없음.
int num = 10; // 타입 변수명 = 값;
System.out.println(num);
{
int num2 = 20;
System.out.println(num2);
}
// System.out.println(num2); // 범위를 벗어나서 Exception
// java에서 error (프로그램(코드) 적으로 손댈 수 없는 에러)
// Exception 프로그램적으로 발생할 수 있는 에러(내가 코드를 잘못 짠 경우)
// char : 한 글자만 저장 가능. ' '
// String : 단어 장문 가능. " "
// char ch = "a"; // Type mismatch
// String s = 'a'; // Type mismatch
char ch = 'a';
System.out.println((int)ch); // 유니코드(아스키) 표에 의해 변환된 10진수를 출력
// long / float은 L(l)-생략가능 / F(f) 를 접미사로 표현
// java 정수의 기본자료형 int 실수의 기본자료형 double
long l = 1L; // long 형의 특징
System.out.println(l);
float f = 0.1f;
System.out.println(f);
// 사칙연산자 : + - * / %(나머지)
// 증감연산자 : ++ -- +=
// 논리연산자 : && || !
// 대입연산자 : = == !=
// 조건선택연산자 : (조건식) ? true : false 연결해서 다중 사용가능
// + : 산술연산자, 연결연산자
// 숫자 + 숫자 => 산술연산자로 인지
// 숫자 + 문자 => 연결연산자로 인지 이후부터 문자로 인식
System.out.println(1 + 2);
System.out.println(1 + 2 + "가나다");
System.out.println("가나다" + (1 + 2));
}
}
▷ 출력
▣ Test02
package day01;
public class Test02 {
public static void main(String[] args) {
// main + ctrl + spacebar
/* 국어 영어 수학 세 점수의 합계와 평균을 출력
* if문을 이용하여 평균 80점 이상이면 pass / fail
* */
int kor = 78;
int eng = 89;
int math = 98;
int sum = kor + eng + math;
double avg = (double)sum / 3;
String s = "";
if(avg >= 80) {
s = "pass";
}else {
s = "fail";
}
System.out.println("합계 : " + sum + " 평균 : " + avg + " 결과 : " + s);
}
}
▷ 출력
▣ Test03
package day01;
import java.util.Scanner;
// Scanner + ctrl + spacebar
public class Test03 {
public static void main(String[] args) {
/* Scanner 클래스 : 콘솔에서 값을 입력받을 때 사용
* (int)(Math.random()*개수)+시작값 : 시작값부터 개수만큼 정수형 랜덤값 생성
* */
// 값을 입력받으려면 Scanner scan = new Scanner(System.in);
// 주사위 값 랜덤 발생
// int random = (int)(Math.random()*6)+1;
// System.out.println(random);
// 랜덤으로 주사위를 굴려 총 30칸을 이동하시오.
// 주사위를 던지는 횟수를 출력.
/* 주사위 게임
* 주사위는 Enter를 치면 던져짐.
* 주사위 : 3
* 3칸 전진 => 27칸 남음.
* 주사위 : 5
* 5칸 전진 => 22칸 남음
* ...
* 도착!! 총 던진 횟수 > ??
* */
// for(횟수가 일정한 경우) / while(횟수가 일정하지 않는 경우)
// for(int i = 0; i <= 10; i ++) {
// // 처리 0부터 10까지 1씩 반복
// }
//
// while(식) {
// 처리;
//
// }
// Enter 인지 => Scanner 사용
int finish = 30;
int cnt = 0;
Scanner scan = new Scanner(System.in);
while(finish > 0) {
cnt ++;
System.out.println("주사위 굴리기(Enter)");
scan.nextLine(); // next() : Enter 처리불가
int random = (int)(Math.random()*6)+1;
finish -= random;
System.out.println("주사위 : " + random);
if(finish > 0) {
System.out.println(random +"칸 전진 => " + finish + "칸 남음.");
}else {
System.out.println("도착!! 총 던진 횟수 > " + cnt);
}
}
// ctrl + shift + F : 들여쓰기 자동 정렬
}
}
▷ 출력
▣ Test04
package day01;
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
// 배열 : 같은 타입, 같은 의미를 가지는 변수들의 집합 (참조변수)
// 타입 배열명[] = new int[개수];
// 지역변수는 초기값이 없음. (안 정해주면 에러가 남)
// 참조변수는 초기값이 있음. (숫자는 0, 문자는 null)
String s = new String("가나다라");
// String 워낙 자주 사용하는 참조변수 => 일반 지역변수처럼 사용
String s1 = "akqkt";
System.out.println(s);
System.out.println(s1);
int arr[] = new int[5];
arr[0] += 1;
System.out.println(arr[0]);
// int num;
// num += 1; // 초기값이 없어서 Exception 발생
// arr 배열에 숫자를 1,2,3,4,5로 채우고 출력
// arr.length = 총길이 -1 번지를 가지기 때문.
for(int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
System.out.print(arr[i]);
}
System.out.println();
arr[0] = 10;
arr[1] = 20;
System.out.println(arr[0]);
/* 5자리 숫자를 입력 받아서 각 자리의 합을 출력
* 입력값 => 12345 출력 => 1+2+3+4+5 = ?? 출력 => 5+4+3+2+1 = ??
* */
Scanner scan = new Scanner(System.in);
System.out.println("숫자를 5자리 입력해주세요. >");
String num = scan.next();
String number[] = num.split(""); // 갯수 상관이 입력한 숫자가 배열로 리턴
int sum = 0;
for(int i = 0; i < number.length-1; i++) {
// String 연산 불가능.
System.out.print(number[i] + " + ");
// String => int 변환 Integer.parseInt(변환가능한 문자);
sum += Integer.parseInt(number[i]);
}
sum += Integer.parseInt(number[number.length-1]);
System.out.print(number[number.length-1]+"= "+sum);
System.out.println();
for(int i=number.length-1; i > 0; i--) {
System.out.print(number[i] + " + ");
}
System.out.println(number[0] + "= " + sum);
scan.close();
// 다른 풀이과정
/*
System.out.println("5자리 숫자를 입력해주세요.");
Scanner scan = new Scanner(System.in);
String str = scan.next();
int sum = 0;
char arr1[] = new char[5];
String text1 = "";
String text2 = "";
for(int i = 0; i < arr1.length; i ++) {
arr1[i] = str.charAt(i);
sum += Character.getNumericValue(arr1[i]);
}
for(int i = 0; i < arr1.length; i ++) {
if(i < 4) {
text1 += arr1[i] + " + ";
}else {
text1 += arr1[i] + " = " + sum;
}
if(i < 4) {
text2 += arr1[arr1.length-1-i] + " + ";
}else {
text2 += arr1[arr1.length-1-i] + " = " + sum;
}
}
System.out.println(text1);
System.out.println(text2);
scan.close();
*/
}
}
▷ 출력
▣ Test05
package day01;
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
String[] fileName = {"spring.java", "python.py", "react.jsx", "css.css", "String.java",
"component.jsx", "text.txt"};
// ex : 검색어를 입력 받아 fileName 배열에 검색어가 존재하면 해당 파일 이름을 출력
/* 검색어 : java
* spring.java
* String.java
*
* 검색어 : s
* spring.java
* css.css
* String.java
*
* 검색어 : 가나다
* 검색결과가 없습니다.
* */
Scanner scan = new Scanner(System.in);
System.out.println("검색어를 입력해주세요.");
String word = scan.next();
int cnt = 0;
for(String file : fileName) {
if(file.toLowerCase().contains(word.toLowerCase())) {
System.out.println(file);
cnt++;
}
}
if(cnt == 0) {
System.out.println("검색결과가 없습니다.");
}
}
}
▷ 출력
3. 느낀 점
최근에 React Project를 하느라 머리를 싸매면서 Project를 준비해서 정신적으로 힘들었는데, 오늘 수업을 들으면서 오랜만에 JAVA에서 간단한 문제들을 풀어보아서 정신적으로 좋았던 것 같다.
'Java' 카테고리의 다른 글
Java 기초(class)- AWS 풀스택 과정 47일차 (1) | 2024.09.27 |
---|---|
Java 기초(method)- AWS 풀스택 과정 46일차 (2) | 2024.09.26 |
Java 기초(static) - AWS 풀스택 과정 8일차 (0) | 2024.07.24 |
Java 기초(Class) - AWS 풀스택 과정 7일차 (0) | 2024.07.23 |
Java 기초(객체 지향 언어) - AWS 풀스택 과정 6일차 (0) | 2024.07.22 |