language/Java
-
Java 024. 배열(Array)(2)2023.06.29
-
Java 021. 배열(Array)(1)2023.04.09
-
Java 020. switch - case 조건문2023.04.09
-
Java 017. 이중 반복문 for / while / break (2)2023.04.02
Java 024. 배열(Array)(2)
문자열 3개를 저장할 수 있는 배열(names)을 선언, 초기화.
String[] names = new String[3];
배열 names에 문자열을 하나씩 저장
names[0] = "김하늬";
names[1] = "김바람";
names[2] = "철이";
배열 names의 내용을 한 줄로 출력
for 구문
for ( int i = 0; i < names.length; i++) {
System.out.print(names[i] + " ");
}
for-each 구문
for (String n : names) {
System.out.print(n + " ");
}
'language > Java' 카테고리의 다른 글
경로 [/...]의 컨텍스트 내의 서블릿 [dispatcherServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.(...).(...).repository.(...)Repository.deleteByMtid]을(를) 발생시켰습니다.
이 오류는 mapper의 id값(delete로 되어있었음)과 Repository의 deleteByMtid 메서드명이 일치하지 않아서 생긴 오류이다.
mapper의 id값을 deleteByMtid로 바꿔주었다.
굉장히 어이없는 ㅎㅎ 실수를 많이한다... 정신 차리고 공부해야지 ...
'language > Java' 카테고리의 다른 글
Java 024. 배열(Array)(2) (0) | 2023.06.29 |
---|---|
Java 022. MyBatis 오류 ReflectionException: Error instantiating class ... with invalid types ... or values ... Cause: java.lang.IllegalArgumentException (0) | 2023.06.25 |
Java 021. 배열(Array)(1) (0) | 2023.04.09 |
Java 020. switch - case 조건문 (0) | 2023.04.09 |
Java 019. 무한 루프 while문 / switch문 / 입출금 자바 프로그램 (0) | 2023.04.09 |
Java 022. MyBatis 오류 ReflectionException: Error instantiating class ... with invalid types ... or values ... Cause: java.lang.IllegalArgumentException
나의 경우 db에 데이터가 잘 못 들어가 있었기 때문에 잘 못 된 데이터를 지워주니 해결됐다.
values (12,null,null,null,0,0,null,테스트) values값이 12인 12번째의 db데이터를 삭제해주었다.
MyBatis 필드 매핑 시도할 때 마주친, “org.mybatis.spring.MyBatisSystemException:
올해 2월 중순 경… 마이바티스를 처음으로 접한 후 필드를 매핑하면서
medium.com
'language > Java' 카테고리의 다른 글
Java 024. 배열(Array)(2) (0) | 2023.06.29 |
---|---|
Java 023. 오류 경로 [/...]의 컨텍스트 내의 서블릿 [dispatcherServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.apache.ibatis.binding.Binding.. (0) | 2023.06.26 |
Java 021. 배열(Array)(1) (0) | 2023.04.09 |
Java 020. switch - case 조건문 (0) | 2023.04.09 |
Java 019. 무한 루프 while문 / switch문 / 입출금 자바 프로그램 (0) | 2023.04.09 |
Java 021. 배열(Array)(1)
배열(Array)이란?
배열(array)은 같은 타입의 데이터 여러개를 하나의 변수 이름으로 저장하기 위한 메모리이다.
배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 한다.
배열의 인덱스(index)는 0부터 시작한다. 그러므로 배열의 마지막 인덱스는 항상 배열 원소 개수 -1이 된다.
배열은 같은 타입의 데이터만 저장할 수 있다. (선언과 동시에 저장할 수 있는 타입이 결정됨)
한번 생성된 배열은 길이를 늘리거나 줄일 수 없다.
배열 선언
(1) 타입[ ] 배열이름; (2) 타입 배열이름 [ ]; |
배열 생성
(1) new 연산자로 배열 생성 타입[ ] 변수 = new 타입[ 길이 ]; (2) 값 목록으로 배열 생성 타입[ ] 변수 = { 값0, 값1, 값2, 값3, ... }; |
(1) new 연산자로 배열 생성
int[] scores = new int[4]; -> scores는 int(정수) 4개를 저장할 수 있는 int배열이다.
//int arr[ ] = new int[10];
<배열의 특정 인덱스에 원소 재할당>
scores[0] = 100; // 100이라는 값을 score 0에 저장.
scores[1] = 90;
<배열의 특정 인덱스에 저장된 원소의 값 읽기>
System.out.println(scores[0]);
System.out.println(scores[1]);
System.out.println(scores[2]);
System.out.println(scores[3]);
실행 결과 =
100
90
0
0
<배열 length 속성>
System.out.println("length = " + scores.length);
실행 결과 =
length = 4
모든 배열은 배열의 길이(배열의 원소 개수)를 알려주는 length 속성을 가지고 있다.
* 굳이 4라고 하지 않고 조건문에 배열의 length로 써주는 이유는
인덱스의 배열이 바뀌더라도 for문의 조건식을 바꾸지 않고 사용할 수 있기 때문임.
<for문을 사용해 배열의 원소를 하나씩 꺼내기>
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
scores.length는 4이기 때문에 i가 4보다 작을때 까지 반복문을 실행한다.
실행 결과 =
100
90
0
0
(2) 값 목록으로 배열 생성
int[] numbers = {100, 90, 0, 50}; -> numbers는 int(정수) 4개를 저장할 수 있는 int배열이다.
//int[ ] numbers = new int[ ] {100, 90, 0, 50};
쉼표로 원소들이 구별되어서 몇개인지 쓰지 않아도 된다.
<향상된 for문(for - each)을 사용해 배열의 원소를 하나씩 꺼내기>
for (int x : numbers) {
System.out.println(x);
}
실행 결과 =
100
90
0
50
'language > Java' 카테고리의 다른 글
Java 020. switch - case 조건문
switch - case 조건문
switch - case문은 if - else문과 비슷한 조건 제어문이다.
하지만 switch문은 if문처럼 조건식이 true일 경우에 실행문을 실행하는 것이 아닌
변수의 값에 따라 실행문이 선택된다.
조건식의 변수의 값에 따라 해당 case위치로 이동해서 break를 만날 때 까지 코드를 실행한다.
if문은 조건식의 결과가 true, false 두 가지밖에 없기 때문에 경우의 수가 많아질수록 else - if를 반복적으로 추가해줘야하는 반면에 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 간결하게 코드를 작성할 수 있다.
switch (조건식) { case 값 1: 실행문1; break; case 값 2: 실행문2; break; ... ... default: 실행문; } |
default는 조건식이 모든 case가 아닐때 실행한다.
case에 사용 가능한 변수 타입
- 정수 : byte, short, int, long, char
- 문자열 : String
- 열거형 자료 타입(enum)
정수를 사용한 swtich문
int n = 17;
switch (n % 2) {
case 0:
System.out.println("짝수");
break;
case 1:
System.out.println("홀수");
break;
}
실행 결과 =
홀수
*switch문에서는 실수 float, double을 사용할 수 없다.
double x = 1.0;
switch (x) {
case 1.0:
break;
case 2.0:
break;
}
문자열을 사용한 swtich문
String time = "점심";
switch (time) {
case "아침":
System.out.println("breakfast");
break;
case "점심":
System.out.println("lunch");
break;
case "저녁":
System.out.println("dinner");
break;
default:
System.out.println("snack");
}
실행 결과 =
lunch
*switch문에서는 boolean(==)을 사용할 수 없다.
enum 타입을 사용한 switch문
열거형 자료 타입인 enum(enumeration type)은 한정된 값(상수)들만 갖는 데이터 타입이다.
public enum Season {
SPRING, SUMMER, FALL, WINTER;
}
이런식으로 개발자가 정의하여 타입을 만든 것이 enum이다.
Season s = Season.WINTER;
switch (s) {
case SPRING:
System.out.println("봄");
break;
case SUMMER:
System.out.println("여름");
break;
case FALL:
System.out.println("가을");
break;
case WINTER:
System.out.println("겨울");
break;
(enum은 따로 정리를 할 예정이다.)
'language > Java' 카테고리의 다른 글
Java 022. MyBatis 오류 ReflectionException: Error instantiating class ... with invalid types ... or values ... Cause: java.lang.IllegalArgumentException (0) | 2023.06.25 |
---|---|
Java 021. 배열(Array)(1) (0) | 2023.04.09 |
Java 019. 무한 루프 while문 / switch문 / 입출금 자바 프로그램 (0) | 2023.04.09 |
Java 018. for / while 문을 사용해서 별(*) 을 삼각형으로 출력하기 (0) | 2023.04.03 |
Java 017. 이중 반복문 for / while / break (2) (0) | 2023.04.02 |
Java 019. 무한 루프 while문 / switch문 / 입출금 자바 프로그램
간단한 입 출금 자바 프로그램 만들기
무한반복 while문과 switch문을 사용한다.
boolean 타입의 true 변수를 만들어준다.
boolean run = true;
int 타입의 balance 변수를 초기화 선언해주고, 사용자에게 입력받을 Scanner 클래스를 호출하고 import를 해준다.
int balance = 0;
Scanner scanner = new Scanner(System.in);
while문에 위에 초기화해준 run(true)변수를 넣어주어 무한 루프를 만들고,
콘솔 창에 출력 될 간단한 선택지를 만든다.
1을 입력하면 예금이 될 수 있게 2는 출금, 3은 잔고, 4를 입력하면 while무한 루프를 빠져나와 프로그램이 종료 되게 한다.
switch문의 변수값에 입력된 값이 들어가게 해준다.
int menu = scanner.nextInt();
switch (menu) {
- switch에 변수가 1이 입력됐을 경우. (case 1 - 예금)
System.out.print("예금액> "); //사용자가 예금을 하면 balance+예금=더한값
int money = scanner.nextInt();
balance += money;
System.out.println("잔고 :"+ balance);
break; // break문은 switch문을 빠져나가게함.
int 타입의 money에 예금액 값을 받고,
balance에 받은 값을 더하고 balance에 대입해준다. ( += 복합 할당 연산자)
(balance = balance + money)
- switch에 변수가 2가 입력됐을 경우. (case 2 - 출금)
System.out.print("출금액> ");
money = scanner.nextInt();
balance -= money;
(같은 지역에서 이미 int타입으로 money를 초기화 해주었기 때문에 변수이름으로만 불러와도 된다.)
int 타입의 money에 출금액 값을 받고,
balance에 받은 값을 빼고 balance에 대입해준다. (-= 복합 할당 연산자)
여기에 만약 출금할때 잔고가 부족하다면~ 의 조건문을 넣어준다.
if (balance >= 0) {
System.out.println("잔고 : " + balance);
} else if (balance < 0) {
System.out.println("잔고가 부족합니다");
}
break;
만약 balance가 0보다 크거나 같으면 (잔고 있음)
출금이 되어서 잔고를 보여주고,
balance가 0보다 작으면 (잔고 없음)
잔고가 부족하다고 프린트문을 보여준다.
- switch에 변수가 3이 입력됐을 경우. (case 3 - 잔고확인)
System.out.println("잔고 : " + balance);
break;
- switch에 변수가 4가 입력됐을 경우. (case 4 - 종료)
run = false;
break;
while문의 변수 run(true : 무한 반복)을 true에서 false로 재선언 해주어 무한 반복을 멈춘다.
- switch에 변수가 1, 2, 3, 4 이외에 다른 정수가 입력됐을 경우. (default)
System.out.println("메뉴를 잘못 입력했습니다. 다시 선택하세요.");
1, 2, 3, 4 이외에 다른 정수가 입력됐을 경우 print문이 나오고 다시 while문으로 올라간다.
'language > Java' 카테고리의 다른 글
Java 021. 배열(Array)(1) (0) | 2023.04.09 |
---|---|
Java 020. switch - case 조건문 (0) | 2023.04.09 |
Java 018. for / while 문을 사용해서 별(*) 을 삼각형으로 출력하기 (0) | 2023.04.03 |
Java 017. 이중 반복문 for / while / break (2) (0) | 2023.04.02 |
Java 016. 이중 반복문 for / while (1) (0) | 2023.04.02 |
Java 018. for / while 문을 사용해서 별(*) 을 삼각형으로 출력하기
for문을 사용해서 별(*) 을 삼각형으로 출력
*
**
***
****
*****
위처럼 별을 출력한다.
(바깥쪽 x for문)
x는 1로 시작하여 x가 6보다 작을 때 까지 x를 1씩 증가시킨다. (줄바꿈을 해주는 반복문)
(안쪽 y for문)
y는 1로 시작하여 y가 x보다 작거나 같을 때 까지 y를 1씩 증가시킨다. (별의 갯수를 늘려주는 반복문)
(실행 과정)
바깥쪽 x for문 -> x는 1임 -> 1은 6보다 작음(true) -> 반복문 실행 ->
안쪽 y for문으로 이동 -> y는 1임 -> 1은 1보다 작거나 같음(true) -> 반복문 실행 -> * 출력 -> 출력 후 y를 1증가 ->
2(y)는 1(x)보다 작거나 같지 않음(false) -> 반복문 종료 -> 줄바꿈 -> 줄바꿈 후 x를 1 증가 -> 2(x)는 6보다 작음(true)
-> 반복문 실행
.
.
.
x가 6보다 작을 때까지(5) 위와 같이 반복문을 실행한다.
while문을 사용해서 별(*) 을 삼각형으로 출력
(바깥쪽 while문)
line이 5보다 작거나 같을 때 동안만(까지만) 반복문을 실행한다.
(안쪽 while문)
count가 line보다 작거나 같을때 동안만(까지만) 반복문을 실행한다.
(실행 과정)
바깥쪽 while문 -> 1(line)은 5보다 작거나 같음(true) -> 반복문 실행 ->
안쪽 while문으로 이동 -> 1(count)은 1(line)보다 작거나 같음(true) -> 반복문 실행 -> * 출력 -> 출력 후 count를 1증가 ->
2(y)는 1(x)보다 작거나 같지 않음(false) -> 반복문 종료 -> 줄바꿈 -> 줄바꿈 후 x를 1 증가 -> 2(x)는 6보다 작음(true)
-> 반복문 실행
for문을 사용해서 별(*) 을 삼각형으로 출력
*
**
***
****
*****
****
***
**
*
위처럼 별을 출력한다.
(for문)
x는 1로 시작하여 x가 9보다 작거나 같을 때 까지 x를 1씩 증가시킨다. (줄바꿈을 해주는 반복문)
(if, for문)
만약 x가 5보다 작거나 같으면
y는 1로 시작하여 y가 x보다 작거나 같을 때 *을 반복 출력한다. (별의 갯수를 늘려주는 반복문)
(if else, for문)
만약 x가 5보다 작거나 같지 않으면
y는 4로 시작하여 y가 x - 5 보다 크거나 같을 때 까지 y를 1씩 감소시킨다. (별의 갯수를 줄여주는 반복문)
(실행 과정)
바깥쪽 x for문 -> x는 1임 -> 1은 9보다 작거나 같음(true) -> 반복문 실행 ->
안쪽 if문으로 이동 -> x는 5보다 작거나 같음(true) -> if문 안쪽 for문으로 이동 -> y는 1임 ->
1(y)는 1(x)보다 작거나 같음(true) -> 반복문 실행 -> * 출력 -> 출력 후 y를 1증가 ->
2(y)는 1(x)보다 작거나 같지 않음(false) -> if문을 빠져나와서 줄바꿈 ->
다시 바깥쪽 x for문으로 이동 후 x가 9보다 작거나 같지 않을 때 까지 반복 실행.
만약 if문에서 x가 5보다 작거나 같지 않을 경우 -> else문의 for문 실행 -> y는 4임 -> y는 x -5 보다 크거나 같음 (true) ->
* 출력 -> 출력 후 y를 감소
.
.
.
'language > Java' 카테고리의 다른 글
Java 020. switch - case 조건문 (0) | 2023.04.09 |
---|---|
Java 019. 무한 루프 while문 / switch문 / 입출금 자바 프로그램 (0) | 2023.04.09 |
Java 017. 이중 반복문 for / while / break (2) (0) | 2023.04.02 |
Java 016. 이중 반복문 for / while (1) (0) | 2023.04.02 |
Java 015. 조건문 / 반복문을 사용한 369 게임 (0) | 2023.03.31 |
Java 017. 이중 반복문 for / while / break (2)
for문과 break를 사용해서 구구단 만들기
2단은 2x2까지 3단은 3x3까지 4단은 4x4까지 ... 9단은 9x9까지만 구구단 출력
(바깥쪽에 있는 dan for문)
int 타입 dan은 2부터 시작. dan이 10보다 작을 때 까지 dan을 1씩 증가 반복문을 실행한다.
"--- 2단 ---" 출력 후 안쪽에 있는 n for문으로 이동한다.
(안쪽에 있는 n for문)
int타입 n은 1로 시작. n이 10보다 작을 때 까지 n을 1씩 증가 반복문을 실행한다.
만약 dan과 n의 값이 같지 않을 경우 "2 x 1 = 2" 을 출력한다.
dan과 n의 값이 같을 경우 반복을 break ( if문을 빠져나옴)
다시 바깥쪽의 for문으로 올라가서 dan을 1증가시킨다.
dan이 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.
break를 사용하지 않은 코드
바깥쪽 dan for문은 위와 동일하다.
(안쪽에 있는 n for문)
n은 1로 시작하고, n이 dan보다 작거나 같을 때 까지 n을 1씩 증가 반복문을 실행한다.
while 문을 사용해서 구구단 만들기
2단은 2x2까지 3단은 3x3까지 4단은 4x4까지 ... 9단은 9x9까지만 구구단 출력
먼저 변수를 선언해서 변수값을 초기화해준다.
(바깥쪽에 있는 a while문)
a가 10보다 작을 때 동안만 (까지만) 반복문을 실행한다.
"--- 2단 ---" 출력 후 안쪽에 있는 b while문으로 이동한다..
(안쪽에 있는 b while문)
b가 10보다 작을 때 동안만(까지만) 반복문을 실행한다.
a와 b의 값이 같지 않을 경우 if문은 break하지 않고 "2 x 1 = 2" 을 출력한다.
만약 a가 b와 값이 같을 경우 출력을 하지 않고 break ( if문을 빠져나옴) 한 후 a를 1증가시킨다.
바깥쪽의 while문으로 이동 후 위와 동일하게 반복문을 실행한다.
출력 후 b의 값을 1증가시킨다. 다시 b while문으로 이동한다.
a가 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.
break를 사용하지 않은 코드
바깥쪽 a while문은 위와 동일하다.
(안쪽에 있는 b while문)
b가 a와 작거나 같을 때 동안만(까지만) 출력하고, b를 1씩 증가시킨다.
b가 a보다 크거나 같지 않으면 안쪽 b while문을 끝내고 나와서 a를 1증가시키고, 바깥쪽 a while문으로 이동한다.
a가 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.
.
.
.
'language > Java' 카테고리의 다른 글
Java 019. 무한 루프 while문 / switch문 / 입출금 자바 프로그램 (0) | 2023.04.09 |
---|---|
Java 018. for / while 문을 사용해서 별(*) 을 삼각형으로 출력하기 (0) | 2023.04.03 |
Java 016. 이중 반복문 for / while (1) (0) | 2023.04.02 |
Java 015. 조건문 / 반복문을 사용한 369 게임 (0) | 2023.03.31 |
Java 014. 반복문 예제 구구단 / 정수 출력 (0) | 2023.03.31 |