본문 바로가기

공부일지

230921 (Java)

while문

  • 정해진 횟수를 모르거나 어떤 조건에 의해서 반복해야 할 때
  • 변수를 밖에 만들어서 반복을 종료할 수 있도록 해야한다.

테스트

  • while 문을 이용하여 구구단 2단을 출력,
  • while문을 이용하여 구구단 2~9단을 출력하는 코드를 작성학.
public class Test01_While {
	public static void main(String[] args) {
		int i=1;
		while (i<=9) {
			System.out.println("2 x " + i + " = " + (2*i));
			i++;
		}
		
		int j=2;
		while (j<=9) {
			int k = 1;
			while (k<=9) {
				System.out.println(j + " x " + k + " = " + (j*k));
				k++;
			}
			j++;
		}
	}
}

 

테스트

  • 구구단 2~9단을 출력하는데 for문 1개, While문 1개를 써서 출력
public class Test02_WhileFor {
	public static void main(String[] args) {
		for (int i=2; i<=9; i++) {
			int j=1;
			while (j<=9) {
				System.out.println(i + " x " + j + " = " + (i*j));
				j++;
			}
		}
	}
}

break문의 활용

  • 제어문을 종료시키는 역할
  • if 내부에 넣어 특정 조건에 반복문을 종료하도록 할 수 있다.
  • break 뒤에 숫자를 넣으면 상위 제어문을 몇 개를 멈출지 지정할 수 있다.
public class Ex01_Break {
	public static void main(String[] args) {
		int i=0;
		while (true) {
			System.out.println("브레이크로 제어문 중지");
			break;
		}
		
		while(true) {
			System.out.println("while 실행중"+i);
			if (i==999) {
				break;
			}
			i++;
		}
	}
}

scanner의 사용

  • scanner : 콘솔(IO)
  • Input : 사용자가 입력한 값을 콘솔을 통해 에디터(java)로 가져옴
  • Output : 콘솔창으로 데이터를 출력(syso)
  • 스캐너의 특징 : blockState. 입력을 대기한다. 프로그램은 위에서 아래로 흐른다.
  • nextLine은 입력 값을 String으로 받아온다.
import java.util.Scanner;

public class Ex02_Break {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		String inputData = scan.nextLine();
		
		System.out.println("입력 값 : " + inputData);
		
		System.out.println("아이디를 입력해주세요");
		String userId = scan.nextLine();
		System.out.println("비밀번호를 입력해주세요");
		String userPw = scan.nextLine();
		System.out.println("입력 된 정보 " + userId + " " + userPw);
	}
}

Continue

  • 뒤의 코드를 무시하고 반복문을 다시 시작한다.
  • 비트 연산자 i&j
    • 첫 비트들의 연산을 한다.
public class Ex03_Continue {
	public static void main(String[] args) {
		int oddSum = 0;
		for (int i=1;i<=10;i++) {
			if((i&1)!=1) {
				continue;
			}
			oddSum+=i;
		}
		System.out.println(oddSum);
	}
}

테스트

  • 스캐너를 통해서 입력을 받는다. 입력 된 데이터는 변수에 저장
  • 스캐너를 통해 입력 받은 값에 +10한 결과를 출력
  • 단 입력은 반드시 숫자 값만 한다.
import java.util.Scanner;

public class Ex01_HighLowGame {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		String str = scan.nextLine();
		
		int num = Integer.parseInt(str);
		System.out.println(num+10);
	}
}

랜덤 함수의 이용

  • Random random = new Random();
  • int num = random.nextInt(100);
    • 0~99까지의 수를 랜덤으로 뽑는다.
  • high-low 게임 만들기
import java.util.Random;
import java.util.Scanner;

public class Ex01_HighLowGame {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		Random random = new Random();
		int ranNum = random.nextInt(1000) + 1;
		int count = 10;
		System.out.println("1~1000 사이의 정수를 맞추세요!");
		while (true) {
			String str = scan.nextLine();
			int num = Integer.parseInt(str);
			count--;
			if (num < ranNum) {
				System.out.println("High " + count + "회 남았습니다.");
			} else if (num > ranNum) {
				System.out.println("Low " + count + "회 남았습니다.");
			} else if (num == ranNum) {
				System.out.println("정답! 축하드립니다.");
				System.out.println("정답까지" + (10 - count) + "회");
				break;
			} else if (num == -1) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}
			if (count == 0) {
				System.out.println("패배하셨습니다.");
				break;
			}
		}
	}
}

'공부일지' 카테고리의 다른 글

230922 (Java)  (0) 2023.09.22
230922 (HTML)  (0) 2023.09.22
230921 (HTML)  (0) 2023.09.21
230920 (Java)  (0) 2023.09.20
230920 (HTML)  (0) 2023.09.20