자바 공부4

윤현우·2022년 8월 15일
0

자바공부

목록 보기
4/6
post-thumbnail

📕조건문


if문

  • 가장 기본적인 조건문
  • '만일( if ) 조건식이 참( true )이면 괄호 {} 안의 문장들을 수행하라. 라는 의미로 이해하면 된다.
  • 자바에서 조건식의 결과는 반드시 true 또는 false이어야 한다.
if (조건식) {
		//조건식이 참(true)일 때 수행될 문장들을 적는다.
}

else문

  • if문에 'else'블럭을 추가한 조건문
  • 조건문이 거짓일 때 else블럭의 문장을 수행하라는 뜻이다.
if (조건식) {
		// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}
esle {
		// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}

else-if문

  • 한 문장에 여러 개의 조건식을 쓸 수 있는 'if-else'문을 사용하면 된다.
if (조건식1) {
		// 조건식1의 연산결과가 참(true)일 때 수행될 문장들을 적는다.
}	else if (조건식2) {
		// 조건식2의 연산결과가 참(true)일 때 수행될 문장들을 적는다.
}	else if (조건식3) {
		// 조건식3의 연산결과가 참(true)일 때 수행될 문장들을 적는다.
}	else{
		// 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}

switch문

  • if문 은 조건식의 결과가 참과 거짓, 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if 를 계속 추가해야하므로 조건식이 많아져 복잡해지고, 처리시간도 많이 걸린다.
  • switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고, 표현도 간결하므로 알아보기 쉽다.
  • 다만 switch문은 제약조건이 있기 때문에, 경우의 수가 많아도 어쩔 수 없이 if문으로 작성해야 하는 경우가 있다.
  • 만일 조건식의 결과와 일치하는 case문이 하나도 없을 경우에는 default문으로 이동한다.
switch(조건문) {
	case 1:
    	//조건문의 연산결과가 1일 때 수행될 문장들을 적는다.
        break;
    case 2:
    	//조건문의 연산결과가 2일 때 수행될 문장들을 적는다.
        break;
    default:
    	//case가 없는 조건식 결과일 때 수행될 문장들을 적는다.
        break;
}

switch문의 처리 방법

  1. 조건식을 계산한다.
  2. 조건식의 결과와 일치하는 case문으로 이동한다.
  3. 이후의 문장들을 수행한다.
  4. break문이나 switch문을 만나면 전체 switch문을 빠져나가게 된다.

switch문의 제약조건

  1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
  2. case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.

📌<깨알 상식 - 난수 생성>


Math.random()을 사용하면 난수(임의의 수)를 얻을 수 있다.

  • 이 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double값을 반환한다.
  • 0.0은 범위에 포함되고 1.0은 포함되지 않는다.
0.0 <= Math.random() < 1.0

만일 1부터 50 사이의 정수를 구하기를 원한다면

  1. 각 변에 50을 곱한다.
  2. 각 변을 int형으로 변환한다.
  3. 각 변에 1을 더한다.
int num = (int)(Math.random() * 50) + 3;	

📕반복문


for문

for(초기화; 조건식; 증감식) {
	// 조건식이 참일 때 수행될 문장들을 적는다.
}

for문 수행순서

  1. 초기화가 수행된다.
  2. 조건식이 참이면
  3. 수행될 문장들이 수행된다.
  4. 수행될 문장들이 수행된 후 증감식이 수행된다.
  5. 반복되다가 조건식이 거짓이되면 for문 전체를 빠져나가게 된다.

초기화

  • 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행된다.
  • 보통 변수 하나로 for문을 제어하지만, 둘 이상의 변수가 필요할 때는 아래와 같이 콤마 ','를 구분자로 변수를 초기화하면 된다. (단, 두 변수의 타입은 같아야 한다.)
for(int i = 1; i <= 10; i++) {...}	// 변수 i 의 값을 1로 초기화한다.
for(int i = 1, j = 0; i <= 10; i++) {...}	// int타입의 변수 i와 j를 선언하고 초기화

조건식

  • 조건식의 값이 참(true)이면 반복을 계속하고, 거짓(false)이면 반복을 중단하고 for문을 벗어난다.
  • 조건식을 잘못 작성하면 반복문이 한번도 수행되지 않거나 영원히 반복되는 무한반복에 빠지기 쉬우므로 주의해야 한다.

증감식

  • 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다.
  • 매 반복마다 변수의 값이 증감식에 의해 점진적으로 변하다가 결국 조건식이 거짓이 되어 for문을 벗어나게 된다.
  • 증감식도 쉼표 ','를 이용해서 두문장 이상을 하나로 연결해서 쓸 수 있다.
for(int i = 1, j = 10; i <= 10; i++, j--) {...}	  // i는 1부터 10까지 증가, j는 10부터 1까지 감소

📌<깨알 상식 - Integer.parseInt()>

  • String 타입으로 입력받은 내용을 숫자로 변환 시키는 메서드이다.
  • int타입 뿐만 아니라 byte, float, double 등 숫자와 관련된 타입은 모두 가능하다
    ex) Byte.parseByte(); / Short.parseShort(); / Double.parseDouble();
  • 이 메서드 들은 무조건 숫자로된 문자열이여아만 한다. 숫자가 아닌 문자가 들어가있으면 오류를 낸다.
Scanner scanner = new Scanner(System.in);
String tmp = scanner.nextLine();	//화면을 통해 입력받은 내용을 tmp에 저장
int num = Integer.parseInt(tmp);	//입력받은 문자열 tmp를 숫자로 변환

향상된 for문

for(타입 변수명 : 배열 또는 컬렉션) {
	// 반복할 문장
}
  • 위의 문장에서 타입은 배열 또는 컬렉션의 요소의 타입이어야 한다.
  • 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장된다.
  • 반복문의 괄호 {}내에서는 이 변수를 사용해서 코드를 작성한다.

while문

  • while문은 조건식이 거짓이 될 때까지 블럭 {} 내의 문장을 반복한다.
while (조건식) {
	//조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다.
}

do-while문

  • while문의 변형으로 기본적인 구조는 while문과 같지만, 조건식과 블럭{}의 순서를 바꿔놓은 것이다.
  • while문과 반대로 블럭{}을 먼저 수행한 후 조건식을 평가한다.
  • 따라서 while문은 한번도 수행되지 않을 수 있지만 do-while문은 최소 한번은 수행됨을 보장한다.
do {
	//조건식의 연산결과가 참일때 수행될 문장들을 적는다.
} while (조건식);	// 끝에 ';'을 잊지 않도록 주의

break문

  • switch문에서 배웠듯이 반복문에서도 break를 사용할 수 있다.
  • break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.
  • 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다.
while(true) {
	if(sum > 100)
    	break;	// if문이 성립되면 while문을 벗어난다.
    ++i;
    sum += i;
}

continue문

  • continue문은 반복문 내에서만 사용될 수 있다.
  • 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
  • continue문은 반복문 전체를 벗어나지 않고 다음 반복을 계속 수행한다는 점이 break문과 다르다.
for(int i = 1; i <= 10; i++) {
	if(i % 3 == 0)
    	continue;	 // 조건식이 참이 되어 continue문이 수행되면 블럭의 끝으로 이동한다.
    System.out.println(i);
}

실행결과 -> 1 2 4 5 7 8 10

이름 붙은 반복문

  • break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 여러개의 반복문을 한번에 벗어날 수 없다.
  • 이때는 반복문에 이름을 붙여 한번에 벗어날 수 있게 할 수 있다.
outer:
for(int i = 2; i < 10; i++) {
	for(int j = 1; j <= 9; j++) {
    	if( J == 5)
        	break outer;
        System.out.println(i + "*" + j  + "=" + i*j);
    }
    System.out.println();
}	//end of outer

실행 결과 -> 2*1=2 \n 2*2=4 \n 2*3=6 \n 2*4=8

profile
개발자가 되는 그날까지

0개의 댓글