조건문과 반복문 / 배열

고은아·2023년 5월 25일
0

TIL

목록 보기
3/49

기본적인 내용을 기록한 뒤 직접 구현을 진행해보며 방법을 익힐 생각이다. 지속적으로 반복해서 진행하자!

조건문

1. if

if

boolean flag = true;

if (flag) {
System.out.println("flag 값은 true 입니다."); // flag 값은 true 입니다. 출력
}

if else

boolean flag = false;

if (flag) {
System.out.println("flag 값은 true 입니다."); // 미출력
} else {
System.out.println("flag 값은 false 입니다."); // flag 값은 false 입니다. 출력
}

if else if

int number = 2;

if (number == 1) {
System.out.println("number 값은 1 입니다."); // 미출력
} else if (number == 2) {
System.out.println("number 값은 2 입니다."); // number 값은 2 입니다. 출력
} else {
System.out.println("number 값은 모르는 값입니다."); // 미출력
}

중첩 if

boolean flag = true;
int number = 2;

if (flag) {
if (number == 1) {
System.out.println("flag 값은 true, number 값은 1 입니다."); // 미출력
} else if (number == 2) {
System.out.println("flag 값은 true, number 값은 2 입니다."); // flag 값은 true, number 값은 2 입니다. 출력
}
} else {
if (number == 1) {
System.out.println("flag 값은 false, number 값은 1 입니다."); // 미출력
} else if (number == 2) {
System.out.println("flag 값은 false, number 값은 2 입니다."); // 미출력
}
}

2. switch

switch/case

int month = 8;
String monthString = "";
switch (month) {
case 1: monthString = "1월";
break;
case 2: monthString = "2월";
break;
case 3: monthString = "3월";
break;
case 4: monthString = "4월";
break;
case 5: monthString = "5월";
break;
case 6: monthString = "6월";
break;
case 7: monthString = "7월";
break;
case 8: monthString = "8월";
break;
case 9: monthString = "9월";
break;
case 10: monthString = "10월";
break;
case 11: monthString = "11월";
break;
case 12: monthString = "12월";
break;
default: monthString = "알수 없음";
}
System.out.println(monthString); // 8월 출력

반복문

= 까지 계속

1. for

for

for(int i=0; i < 4; i++) { // 변수 i 값은 0 ~ 3 까지 반복
System.out.println(i + "번째 출력"); // i 변수와 문자열 합치기
}

// 출력
0번째 출력
1번째 출력
2번째 출력
3번째 출력

향상된 for

int[] numbers = {3,6,9,12,15};
for(int number: numbers) {
System.out.print(number + " ");
}

// 출력
3 6 9 12 15

  • 만약 기존 for 문으로 구현한다면?

int[] numbers = {3,6,9,12,15};
for(int i = 0; i < numbers.length; i++) { // 배열에 .length 를 붙이면 길이값이 응답됩니다.
System.out.println(numbers[i]);
}

// 출력
3 6 9 12 15

2. while

int number = 0;
while(number < 3) {
number++;
System.out.println(number + "출력");
}

// 출력
1출력
2출력
3출력

3. do-while

int number = 4;
do {
System.out.println(number + "출력");
} while(number < 3); // 연산을 한번 수행 후 조건문 체크

// 출력
4출력

- break

for (int i = 0; i < 10; i++) {
System.out.println("i: " + i);
if (i == 2) {
break; // i 가 2일때 가장 바깥 반복문이 종료됩니다.
}
for (int j = 0; j < 10; j++) {
System.out.println("j: " + j);
if (j == 2) {
break; // j 가 2일때 가장 안쪽 반복문이 종료됩니다.
}
}
}

// 출력
i: 0 // 바깥 반복문 부터 수행 시작
j: 0 // 안쪽 반복문 1회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 break;
i: 1 // 바깥 반복문은 아직 break; 호출이 안됬으므로 다음 반복수행
j: 0 // 안쪽 반복문 2회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 두번째 break;
i: 2 // i 가 2일때 바깥 반복문도 break; 호출되어 종료

- continue

int number = 0;
while(number < 3) {
number++;
if (number == 2) {
continue; // 2일때 반복 패스
}
System.out.println(number + "출력");
}

// 출력
1출력
3출력

배열

= 변수들을 담을 수 있는 분류통 (자료구조)

1. 선언

  • 타입 [] 변수;
    ex. int[] intArray;
  • 타입 변수[];
    ex. int intArray[];

int[] intArray; // 정수 배열
long[] longArray;
double[] doubleArray; // 실수 배열
char[] charArray; // 문자 배열
String[] stringArray; // 문자열 배열

2. 생성 new []

//배열 생성후 초기화하면 배열의 주소가 할당된다.
int[] intArray = new int[3]; // 초기값 {0,0,0}
boolean[] boolArray = new boolean[3]; // 초기값 {false, false, false}
String[] stringArray = new String[3]; // 초기값 {"","",""}

//배열 선언만 해놓고 나중에 초기화를 시킬수도 있다.
int[] intArray2;
intArray2 = new int[3]; // 초기값 {0,0,0}

3. 순회 [i]

//길이가 3인 정수배열 선언
int[] intArray = new int[3];

// 배열이 초기화된 값을 출력해본다.
for(int i=0; i<intArray.length; i++) {
System.out.println(intArray[i]);
}

// 출력
0
0
0

4. 초기화 = {...}

import java.util.Arrays; // Arrays 클래스를 import 하기

public class Main {

public static void main(String[] args) {
1-1. 배열에 특정값 대입하며 선언
int[] intArray = {1, 2, 3, 4, 5};
String[] stringArray = {"a", "b", "c", "d"};

2-1. for문을 통해 값을 대입
for (int i = 0; i < intArray.length; i++) {
intArray[i] = i;
}

2-2. 향상된 for문을 통한 배열 출력
for (int i : intArray) {
System.out.print(i); // 01234
}

3-1. 배열의 주소를 모두 같은값으로 초기화
Arrays.fill(intArray, 1);//배열의 모든 값을 1로 초기화

for (int i : intArray) {
System.out.print(i); // 11111
}
}
}

5. 복사 .clone()

깊은 복사 메서드

  • clone() 메서드
    int[] a = { 1, 2, 3, 4 };
    int[] b = a.clone(); // 가장 간단한 방법
    // clone() 메서드는 2차원이상 배열에서는 얕은 복사로 동작

  • Arrays.copyOf() 메서드
    import java.util.Arrays;
    public class Main {
    public static void main(String[] args) {
    // Arrays.copyOf() 메서드
    int[] a = { 1, 2, 3, 4 };
    int[] b = Arrays.copyOf(a, a.length); // 배열과 함께 length값도 같이 넣어줌
    }
    }

String 배열*

  • 선언 + 생성
    String[] stringArray = new String[3];

  • 초기화
    // 선언 후 하나씩 초기화 가능
    String[] stringArray = new String[3];
    stringArray[0] = "val1";
    stringArray[1] = "val2";
    stringArray[2] = "val3";

// 선언과 동시에 초기화 가능
String[] stringArray1 = new String[]{"val1", "val2", "val3"};
String[] stringArray2 = {"val1", "val2", "val3"};

메서드응답값 타입설명
length()int문자열의 길이를 반환
charAt(int index)char문자열에서 해당 index의 문자를 반환
substring(int from, int to)String문자열에서 해당 범위(from~to)에 있는 문자열을 반환 (to는 범위에 포함 X)
equals(String str)boolean문자열의 내용이 같은지 확인 / 같으면 결과는 true, 다르면 false
toCharArray()char[]문자열을 문자배열(char[])로 변환해서 반환
new String(char[] charArr)String문자배열(char[]) 을 받아서 String으로 복사해서 반환

다차원 배열

  • int[][] array
  • int array[][]
  • int[] array[]
    (1차원 배열에서 대괄호 추가 !)

0개의 댓글

관련 채용 정보