변수(variable)란?
하나의 값을 저장할 수 있는 메모리 공간
변수타입 변수이름;
상수(constant)란?
한 번만 값을 저장 가능한 변수
final 변수타입 (대문자)변수이름 = 값;
리터럴(literal)이란?
그 자체로 값을 의미하는 것
String은 자바에서 제공하는 클래스로 문자열을 다룰 때 사용
원래는 new 연산자를 이용해 객체생성 후 사용해야하나 예외적으로 사용됨
String s = ""; //OK
char ch = ''; //error
Type
- 기본형 8가지(char, byte, short, int, long, float, double, boolean) : 실제 값을 저장
- 참조형 타입 : 메모리 주소를 저장
n비트로 표현할 수 있는 값의 개수 : 2의n승(개)
화면에서 입력받기
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine(); //화면에서 입력받은 내용을 input에 저장
int num = Integer.parseInt(input);
System.out.println(num);
증감연산자
j = ++i; //전위형
-> ++i //증가 후에
-> j = i; //참조하여 대입
j = i++; //후위형
-> j = i; //참조하여 대입 후에
-> i++; //증가
형변환이란? 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
->(주의) 원래의 값은 변하지 않는다. 읽어온 값이 변하는 것
->형변환 생략 시 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환 된다. 단, 값손실이 발생하지 않는 경우에만
문자열의 비교
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //true
조건 연산자 ? :
result = (x > y) ? x : y ;
//(x > y)가 참이면 x 반환, 거짓이면 y 반환
조건문 - if
int score = 0;
char grade = ' ';
System.out.print("점수를 입력하세요.>");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt();
if (score >= 90) {
grade ='A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else {
grade = 'D';
}
System.out.println("당신의 학점은" + grade + "입니다.");
조건문 - switch
제약조건 1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
제약조건 2. case문의 값은 정수 상수(문자 포함). 문자열만 가능하며, 중복되지 않아야 한다.
System.out.print("현재 월을 입력하세요.>");
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
switch(month) {
case 3: case 4: case 5:
System.out.println("현재 계절은 봄입니다.");
break;
case 6: case 7: case 8:
System.out.println("현재 계절은 여름입니다.");
break;
case 9: case 10: case 11:
System.out.println("현재 계절은 가을입니다.");
break;
default :
System.out.println("현재 계절은 겨울입니다.");
}
print/ printf/ println
반복문 -for문 : 반복횟수를 알 때 사용
//①초기화-> ②조건식-> ③수행될문장-> ④증감식->...
for(int i=1; i<=10; i++) {
System.out.println("Life is beautiful");
}
//이중 for문 - 별찍기
for(int i=1; i<=5; i++) {
for(int j=1; j<=5; j++) {
System.out.print("*");
}
System.out.println();
}
//조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다.
int i=1 //초기화
while (i <= 10) { //조건식
System.out.println(i);
i++; //증감식
}
break문
: 자신이 포함된 하나의 반복문을 벗어난다.
continue문
- 자신이 포함된 반복문의 끝으로 이동 -> 다음 반복으로 넘어감
- 전체 반복 중에서 특정 조건시 반복을 건너뛸 때 유용
for(int i=0; i<=10; i++) {
if (i%3 == 0)
continue;
System.out.println(i);
}
//타입[] 변수이름;
//변수이름 = new 타입[길이]
int[] score; //배열을 선언(배열을 다루기 위한 참조변수 선언)
score = new int[5]; //배열을 생성(실제 저장공간을 생성)
int score = {50, 60, 70, 80, 90}; //배열의 초기화
System.out.println(Arrays.toString(iArr)); //배열의 내용을 모두 출력
// 최소값 최대값 구하기
int[] score = {79, 88, 91, 33, 100, 55, 95};
int max = score[0];
int min = score[0];
for(int i=1; i<score.length; i++) {
if(score[i]> max ) {
max = score[i];
} else if(score[i]<min) {
min = score[i];
}
}
System.out.println("max:" + max);
System.out.println("min:" + min);
int[][] score = {
{100, 100},
{20,20,20,20},
{30,30},
{40}
};
int sum = 0;
for (int i=0; i<score.length;i++) {
for (int j=0; j<score[i].length;j++) {
System.out.printf("score[%d][%d]=%d%n", i, j, score[i][j]);
sum += score[i][j];
}
}
System.out.println("sum=" + sum);
String str = "ABCDE";
char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장
String str = "012345";
String tmp = str.substring(1,4); //str에서 index범위 1~4의 문자들을 반환(마지막은 포함x)
System.out.println(tmp); //"123"이 출력됨