Cohe
05 While문~ 변수 본문
728x90
B05_continue
반복문 내부에서만 사용이 가능하다 반목문에서 continue를 사용한다면 아래 내용을 실행하지 않고 다음 반복 회차로 이동한다.-> 조건식으로 이동
B06_while
for문 보다 좀 더 자유도가 높은 반복
- for 문과 달리 while은 조건이 참인지 여부만 확인
형식
- while(condition){ 조건이 참일 때 실행할 명령문들}
do-while 구문 : 거의 안씀
- 반복할 때 무조건 한 번 이상 실행해야 하는 경우
B07_labledLoopExample
- 루프 앞에 이름을 지정 후 : 을 사용
package week01;
public class B07_labledLoopExample {
public static void main(String[] args) {
outer: for(int i = 0; i<3;i++) {
for (int j =0;j<3;j++) {
if(j ==2) {
//break;
break outer; //레이블이 outer인 반복문을 종료
}
System.out.println(i+"\\t"+j);
}
}
}
}
B08_variableLifeTime
- 변수의 수명
- {} 블럭 내부에서, 선언된 변수는 지역 변수로 블럭을 벗어나면 사라진다
- 변수가 살아 있는 범위를 변수의 영역이라고 한다. (Scope)
- 변수의 영역만 겹치지 않는다면 같을 이름의 변수를 사용할 수 있다.
- 객체 생성
- 인스턴스 변수는 영향을 주지 않으나, 클래스 변수는 모든 클래스의 영향을 준다. 공통 변수의 개념으로 생각하면 된다.
package week01;
public class B08_variableLifeTime {
static int c;
int b = 5;
public static void main(String[] args) {
// - 변수의 수명
// - {} 블럭 내부에서, 선언된 변수는 지역 변수로 블럭을 벗어나면 사라진다
// - 변수가 살아 있는 범위를 변수의 영역이라고 한다. (Scope)
// - 변수의 영역만 겹치지 않는다면 같을 이름의 변수를 사용할 수 있다.
int b = 8; //멤버변수(필드, 속성)
System.out.println("main method의 b "+b);
c =10;
System.out.println("class 멤버변수 C : "+c);
B08_variableLifeTime obj = new B08_variableLifeTime();
System.out.println("class의 b이자 인스턴스 멤버변수 : "+obj.b);
// - 객체 생성
// - 인스턴스 변수는 영향을 주지 않으나, 클래스 변수는 모든 클래스의 영향을 준다. 공통 변수의 개념으로 생각하면 된다.
B08_variableLifeTime obj2 = new B08_variableLifeTime();
obj2.b=100;
System.out.println("class의 b이자 인스턴스 멤버변수 : "+obj.b);
System.out.println("class의 b이자 인스턴스 obj2 멤버변수 : "+obj2.b);
if(true) {
int a = 10; //지역변수
System.out.println(a);
a= 7;
// 부모가 가지고 있는 것은 출력할 수 있다.
}
// a =3; => 알 수 없다는 에러가 뜬다. 변수 영역이 다르기 때문
for (int i =0; i<10;i++) {
}
// i =10; -> 이것도 안됨 변수 영역이 다르기 때문
}
}
B09_ArrayExample
- 같은 타입의 변수를 한 번 여러개 선언하는 방법
- 배열의 선언 방법
- type[] 변수명 = new type[배열의 길이]
- 타입[] 변수명 = {datas};
- 타입[] 변수명 = new 타입명 [] {데이터들};
- 배열의 인덱스 : 배열에 저장된 값을 불러올 때에 인덱스 값을 사용. 인덱스 값은 시작값이 0부터이다.
- 배열은 기본 자료형이 아니다.
- 배열 선언시 자동적으로 기본값으로 초기화
- 정수 : 0, 실수 : 0.0, bool : false, 참조형 null
- 배열의 복사
- 배열의 얕은 복사 shallow copy
- 주솟값만 저장됨 ⇒ 같은 주소를 저장, 원본 데이터의 훼손
- 배열의 깊은 복사
- System.arraycopy(src, srcPos, dest, destPos, length)
- src : 원본 배열의 이름,
- srcPos : 복사를 시작할 원본의 위치(인덱스),
- dest : 붙여넣기 할 배열의 이름,
- destPos : 붙여넣기를 시작할 위치를 설정(인덱스),
- length: 복사를 몇 개나 할 것인지 결정
- 깊은 복사를 통해서 모두 복사하고 싶다면 다음과 같이 작성
- System.arraycopy(byeM, 0, byeM2, 0, byeM.length);
- System.arraycopy(src, srcPos, dest, destPos, length)
- 두 복사를 혼합하면 인덱스 OUT이 나와서 에러가 난다
- 배열의 얕은 복사 shallow copy
Enchanced For문(강화된 for문)
- 리스트에서만 사용가능하다.
- for(타입 변수명 : 배열명){반복시 실행할 명령문}
'개발 언어 > JAVA' 카테고리의 다른 글
회원관리 시스템 작성 (0) | 2024.03.12 |
---|---|
06 class (0) | 2024.03.12 |
04 For 문 (0) | 2024.03.08 |
03 연산자, Scanner (0) | 2024.03.07 |
02 JAVA 변수, 변수 형, 타입 캐스팅 (0) | 2024.03.07 |