둘째 주 시작이다
오늘부터는 본격적으로 강의를 듣는다. java문법 기초부터 시작해서 알고리즘 등등..
기대되는데 이해하기 어려울까 걱정도 된다.
일단 오늘 배운거 정리 시작-
java를 다운로드 한 다음 바로 환경변수 설정을 해야한다.
<환경변수>의 <시스템 변수>에서 새로만들기를 한 후
;C:\Program Files\Zulu\zulu-8\bin
경로를 잘 설정했다면 명령프롬프터에 java -version
을 입력한 후 OpenJDK 관련 정보가 표시되면 완료다.
수업을 따라가는데 설정을 왜 해야하는지가 궁금해졌다. 바로 구글링
환경 변수를 설정하는 것은 운영체제가 컴퓨터의 어떤 경로에서든지 파일을 인식하도록 하는 것이다.
경로를 따로 지정하지 않고도 컴퓨터 어느 경로에서든 자바를 인식할 수 있도록 하기 위해서였다.
public class main {
public static void main(String[] args) {
int number = 5; //정수형 변수
System.out.println(number);
String sparta = "Hello World!"; //문자형 변수
System.out.println(sparta);
final int finalNumber = 1;
System.out.println(finalNumber);
}
}
접근제어자
변수의자료형
변수이름
순으로 선언.final
: 접근제어자, int
: 자료형, finalNumber
: 변수이름CamelCase
를 사실상의 표준으로 하고 있음.숫자, 문자, 논리, 바이트
short
: 2바이트로 표현할 수 있는 정수형 자료형
int
: 4바이트로 표현 +-20억
long
: 8바이트로 표현
float
: 소수점 표현 자료형
double
: 소수점 표현 자료형
.MAX_VALUE
/ .MIN_VALUE
: 표현 범위를 나타내줌
char score = 'S';
boolean fact = true;
- 기본 자료형이 아닌 모든 것(자바에서)
- 자바의 인스턴스(객체)를 가리킬 수 있는 자료
class로 정의된 타입을 쓸 때는 다 참조자료형임
int[] intArray = new int[] {1, 2, 3, 4, 5}; //0번째 인덱스부터 4번째 인덱스까지 있음
인트배열은 int를 여러 개를 담을수 있는 것
new int[]{ , , } : 인트배열을 만들면서 {}안에 있는 애로 초기화함
[ ]: 배열을 의미
- 동일한 자료형(int, String .etc.. )의 데이터를 연속된 공간에 저장하기 위한 자료구조. 인덱스는 0번부터 시작.
- int의 디폴트값은 0,
- 참조자료형은 기본값이 없음
- nul(자바에서 아무 값도 없다는 표시)
System.out.println(str + "\n" + num)
글자를 이어붙이고 싶을 때 그냥 +만 쓰면 char의 문자형 변수를 아나키코드사의 숫자로 변경해서 숫자형 변수와 더한 값을 출력하기 때문에+ "" +
를 넣어줘야함\n
은 행을 바꾸고 출력해줌
+,-,*,/,% -> 플,마,곱,나눗,나머지
계산을 한 결과를 대입하겠다
&&
: and연산||
: or연산!
: not연산 if (조건식){
실행 코드
}
switch (입력 변수){
case 입력값1 : 실행 구문
break;
case 입력값2 : 실행 구문
break;
case 입력값3 : 실행 구문
break;
default: 기본 실행 구문
break;
}
char score = 'A'; //라면 "A등급을 축하합니다." 가 출력되고 끝남
break
; 앞 선 조건이 맞으면 뒤에 있는 case를 확인하지 않겠다. 조건식 ? A : B
-조건이 true면 A를 , false면 B를 출력
System.in
: 시스템 인풋을 받을거야; 시스템 실행창에 숫자 입력하면 결과값이 나옴.nextInt()
: 다음에 들어오는 숫자를 받을거야for(초기값 ; 조건식 ; 증감식){
실행 코드 블럭
}
while(조건 하나만){
조건을 나열
}
i++
를 제외하면 무한루프에 빠짐.. 계속 실행중이야 조건 계속 돌려버려continue
: 밑에 조건을 스킵하고 괄호 조건을 확인해while / do-while 차이
- while문은 조건식에 부합할 경우 코드 블럭을 실행하지만, do-while문은 일단 코드 블럭을 >무조건 한번 실행한 후, while문의 조건을 비교합니다.
- 즉, while문의 조건을 확인하기 이전에 do 내부의 코드블럭을 한 번 시행한 후, 그 이후에는 while문의 조건에 일치하지 않으므로 더이상의 실행은 하지않고 출력을 하게 되는 것입니다.
C:\Users\0000\Desktop\sparta\camp\2����\java\sparta_java\src\main\java\main.java:1: error: class Main is public, should be declared in a file named Main.java
public class Main {
^
1 error
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
이런 오류가 뜸
알아보니 java파일이 들어가 있는 파일의 이름이 main
으로 소문자 m이고
코드스니펫에 있던 코드는 public class Main
으로 되어있어서 그런거였음.
다음부턴 대소문자 잘 구분하자~
public class Main {
public static void main(String[] args) {
int sum1 = 0;
int sum2 = 0;
for (int i=0; i < 30; i++){
if ((i+1) % 2 == 0){
sum1 += (i +1);
} else {
sum2 += (i + 1);
}
System.out.println(sum1 +"\n"+sum2);
}
}
홀수, 짝수 나눠서 더하는 코드 짜는 퀴즈였는데
위 코드가 생각해 낸 것이였다. 근데 결과값이 0부터 225까지 짝수 홀수 순으로 다 찍혀서 잘못된 코드구나 했는데 중괄호를 하나 빼먹어서 그런거였음
재밌다.
한 글자 글자 잘 써야겠다는 생각이 든다.
오류가 나지 않으려면...ㅎ