티스토리 뷰
😉 System.out.println(); 단축키
sout 쓰고 CTRL + SPACE 😉
1-5. 자료형-참조 자료형(Reference Type)
기본자료형이 아닌 모든 것(자바의 인스턴스 객체를 가리킬 수 있는 자료형)
int[ ] 는 배열, int를 여러 개 담을 수 있는 것, 참조자료형(int 기본자료형과 다른 것임)
import java.util.Arrays;
public class Main {
public static void main(String[] args){
String sparta = "Hello sparta";
System.out.println(sparta);
int[] intArray = new int[]{1,2,3,4,5};
System.out.println(Arrays.toString(intArray));
//printIn(intArray) alt+enter+enter 치면 println(Arrays.toString(intArray)) 이렇게 바뀜
//배열은 이렇게 감싸주어야 함
}
}
//아래와 같이 출력됨
Hello sparta
[1, 2, 3, 4, 5]
+ 배열 더 알아보기
ㅇ 배열
: 동일한 자료형(위의 경우 int)의 데이터를 연속된 공간에 저장하기 위한 자료 구조
import java.util.Arrays;
public class Main {
public static void main(String[] args){
int[] intEmptyArray = new int[5];
System.out.println(Arrays.toString(intEmptyArray));
//아무 값도 할당하지 않는 방법
int[] intArray = new int[]{1,2,3,4,5};
System.out.println(Arrays.toString(intArray));
//선언과 동시에 (1,2,3,4,5 로) 초기화. 5개 짜리 배열
String[] stringEmptyArray = new String[5];
System.out.println(Arrays.toString(stringEmptyArray));
//String으로 아무 값을 할당해주지 않고 선언만 한 Array
String[] season = {"봄", "여름", "가을", "겨울"};
System.out.println(Arrays.toString(season));
//선언과 동시에 초기화
}
}
// 아래와 같이 출력 성공!
[0, 0, 0, 0, 0]
[1, 2, 3, 4, 5]
[null, null, null, null, null]
[봄, 여름, 가을, 겨울]
# ERROR
처음엔 봄~겨울 글자가 깨졌다...😲
은인 DOing 님의 티스토리 블로그를 그대로 따라 하니 해결됨😍
[IntelliJ] unmappable character for encoding MS949 에러
에러를 보아하니 딱봐도 인텔리제이 사용하는 동안 앞으로도 자주 날 것같은 에러다. 두고두고 봐야할 것같아서 포스팅하려고 한다. 😕 MS949 에러 1. unmappable character for encoding MS949 에러 발생 윈
doing7.tistory.com
Q: 왜 0과 null이 나올까?
A: array는 선언만 하고 초기화를 하지 않으면 해당하는 타입의 초기화되는 값을 Default로 가지게 된다.
- int같은 정수는 default가 0
- String 자체는 Primitive Type이 아님, Reference Type은 기본값이 없음. Java에서 아무것도 없다는 걸 표현하는 게 null
*배열은 사이즈 선언만 하는 게 아니라 값 내용을 채운 다음에 사용해야함
→ 값을 할당하는 것이 초기화? 변수를 선언한 후 처음 값을 할당하는 것을 "변수를 초기화한다"라고 함
+ length 길이
System.out.println(season.length);
//이 배열이 가진 길이를 리턴(모든 배열에 length 내장
System.out.println(season[season.length -1]);
//배열의 마지막 값 구하기
실무에서는 array 잘 쓰지 않고, 가변적인 배열을 나타내는 자료형인 ArrayList 자주 씀(Collection의 종류 중 하나)
1-6. 자료형 퀴즈
import java.util.Arrays;
public class Main {
public static void main(String[] args){
char c = 's';
int num = 10;
System.out.println(c + "\n" + num);
//여기서 \n 개행 행을 바꿔주라는 문자
//출력값 s (줄 바꾸고) 10
//System.out.println(c + "" + num);
//출력값 s10 printIn 에서 글자 이어붙이기 +
//System.out.printIn(c + num);
//이렇게 쓰면 s를 아스키코드 숫자로 인식해버림
int[] intArray = new int[]{10,20,30};
System.out.println(Arrays.toString(intArray));
System.out.println(intArray[intArray.length - 1]);
}
}
*1-7. 연산자 생략
1-8. 조건문
if문
public class Main {
public static void main(String[] args) {
int num1 = 51;
if(num1 > 100){
System.out.println("100보다 큰 수 입니다");
}else if(num1 > 50){
System.out.println("50보다 큰 수 입니다. 100보다 작거나 같습니다");
}
}
}
switch문
어떤 조건들을 미리 계층적으로 선언해놓는 방법
public class Main {
public static void main(String[] args) {
char score = 'A';
switch (score){
case 'A':
System.out.println("A등급");
break;
case 'B'
System.out.println("B등급");
break;
default:
System.out.println("B등급 보다 아래입니다");
}
}
}
정확히 어떤 케이스에 일치하냐를 판단하는 것이 목적임
*default 위의 경우들이 전부 아닌 경우 실행해줘
삼항연산자
public class Main {
public static void main(String[] args) {
int a =5;
String result = a<10 ? "10보다 작습니다" : "10보다 큽니다";
System.out.println(result);
}
}
조건 ? 참일경우 실행할 내용 : 거짓일경우 실행할 내용;
(논리 조건에 대해서 ?가 붙으면 true일 경우 수행할 것 : false일 경우 수행할 것)
그 결과가 변수(result)에 할당됨
1-10. 반복문
for문
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=0; i<10;i++){
sum +=1;
}
System.out.println(sum);
}
}
for-each문
배열이나 Collection 어떤 것의 나열들이 있는 변수가 있을 때 반복문을 쉽게 짤 수 있는 형태
public class Main {
public static void main(String[] args) {
String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
for (String day : days){
System.out.println(day);
}
}
}
days는 String의 배열.
이 배열에 있는 String 값을 하나씩 꺼내서 string 타입의 day 변수에 할당해줄게, 그리고 한 번씩 실행시켜줄게 라는 뜻
while문
public class Main {
public static void main(String[] args) {
// write your code here
int i=0;
int sum=0;
while(i<10){
sum += (i+1);
i++;
}
System.out.println(sum);
}
}
Q: 중간에 loop 빠져나오기? break
while(i<10){
sum += (i+1);
i++;
if(i ==5){
break;
};
}
A: break 나를 감싸고 있는 반복 조건을 하나, 조건의 중괄호 블록을 벗어날 거라는 뜻
Q: 1부터 10까지 다 더할 건데 5만 빼고 더하고 싶을 때?
while(i<10){
if(i ==4){
i++;
continue;
};
sum += (i+1);
i++;
}
A:
i가 4일 때, {} 안의 것을 수행하고 그다음을 수행해줘
continue 나를 감싸고 있던 반복문 블록의 밑 부분을 한 번 스킵하고 그다음 확인해라는 뜻
i가 4일 때 아래의 두 줄을 수행하지 않음
sum += (i+1);
i++;
즉, sum에 5를 넣지 않는다는 뜻!
*만약 if절 안에서 아래의 코드를 쓰지 않는다면,
i++;
i가 4일 때 무한 루프를 돌게 됨
do-while문
조건을 확인하지 않고 수행부터 먼저 하는 것(while문은 조건을 먼저 확인함)
do{
sum += (i+1);
i++;
}while(i<10);
do {} 이걸 먼저 하고 while() 조건에 맞으면 다시 돌아와서 실행해줘
1-11. 반복문 퀴즈
ㄱ. 1부터 100까지 더하기
public class Main {
public static void main(String[] args) {
int sum=0;
for(int i=0;i<100;i++){
sum += i+1;
}
System.out.println(sum);
}
}
for문 안에 int i=0이라고 써야 하고 sum += i+1 임
ㄴ. 5초부터 카운트다운
public class Main {
public static void main(String[] args) {
for(int i = 5;i>=0;i--){
System.out.println("Countdown: " + i);
}
}
}
ㄷ. 1부터 30까지 홀수의 합과 짝수의 합 각각 출력😱
public class Main {
public static void main(String[] args) {
int sumEven=0;
int sumOdd=0;
for(int i=0;i<30;i++){
int value = i+1;
if(value % 2==0){
//even
sumEven += value;
}else{
//odd
sumOdd += value;
}
}
System.out.println(sumEven);
System.out.println(sumOdd);
}
}
'Edu_hanghae99 > Java 문법 뽀개기' 카테고리의 다른 글
[Java] Java 문법 뽀개기 1-21 ~ 1-23 컬렉션 (0) | 2022.11.03 |
---|---|
[Java] Java 문법 뽀개기 1-18 ~ 1-20 (0) | 2022.11.01 |
[Java] Java 문법 뽀개기 1-12 ~ 1-17 (0) | 2022.10.26 |
[Java] Java 문법 뽀개기 1-2 ~ 1-4 (0) | 2022.10.24 |