Cohe

05 While문~ 변수 본문

개발 언어/JAVA

05 While문~ 변수

코헤0121 2024. 3. 11. 18:20
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

  • 같은 타입의 변수를 한 번 여러개 선언하는 방법
  • 배열의 선언 방법
    1. type[] 변수명 = new type[배열의 길이]
    2. 타입[] 변수명 = {datas};
    3. 타입[] 변수명 = 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);
    • 두 복사를 혼합하면 인덱스 OUT이 나와서 에러가 난다

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