Scanner
- 사용자에게 값을 입력받을 수 있음
- .next() : 공백인식이 안됨. 공백 이전까지의 문자만 받음
- .nextLine() : 한줄 단위로 받기 때문에 공백도 가능
- import java.util.Scanner; 을 해줘야 함. 간략하게 import java.util.*;도 가능
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
Systehttp://m.out.print("입력>");
String value = scanner.nextLine(); //개행문자 포함 next() 개행문자 안들어감
System.out.println("입력값:" + value);
while문
- 반복의 조건을 알고 있는 경우 사용하는 반복문
- 반복마다 종료 조건을 물어보는 경우 사용
- 조건식이 true인 동안 실행문 반복합니다.
- while문 블럭안에서 조건을 만족하지 않는 순간을 반드시 만들어줘야한다. 그렇지 않으면 무한루프에 빠져 시스템이 고장난다.
문법)
while(조건식) {
실행문...
}
사용자가 입력한 값이 "q"가 아닌 동안 반복
boolean flag = true;
Scanner scanner = new Scanner(System.in);
while(flag) {
//사용자가 입력한 값이 "q"가 아닌 동안 반복
System.out.print("입력>");
String value = scanner.next();
System.out.println("입력값: " + value);
if(value.equals("q")) {
flag = false;
}
}
scanner.close();
사용자가 입력한 숫자의 합이 100초과하면 반복을 멈출 수 있도록 while문을 완성
Integer.parseInt(문자열)을 사용하면 문자열을 숫자로 변환할 수 있습니다.
Scanner scanner = new Scanner(System.in);
boolean flag = true;
int sum = 0;
while(flag) {
System.out.println("---------------");
System.out.print("숫자 입력>");
String value = scanner.next();
int num = Integer.parseInt(value);
sum += num;
System.out.println("합계 : " + sum);
if(sum > 100) {
flag = false;
}
}
scanner.close();
반복적으로 1~100까지의 난수를 발생합니다
발생한 난수를 출력하며 이때 발생한 난수가 80보다 큰 경우 반복을 멈추고 시스템이 종료됩니다.
boolean flag = true;
int cnt = 0;
while(flag) {
int num = (int)(Math.random()*100)+1;
System.out.println("발생한 난수 : "+ num);
if(num > 80) {
flag = false;
}else {
cnt++;
}
}
System.out.println("80이하 난수 갯수 : " + cnt);
두개의 난수를 더하여 값이 5일 경우 반복문 종료하고 해당 난수를 (x,y) 형태로 출력
boolean flag = true;
while(flag) {
int num1 = (int)(Math.random()*5)+1;
int num2 = (int)(Math.random()*5)+1;
int result = num1 + num2;
System.out.printf("(%d,%d)\n",num1,num2);
if(result == 5) {
flag = false;
System.out.printf("눈의 합이 5인 경우(%d,%d)\n",num1,num2);
}
}
1번을 선택하면 예금, 2번을 선택하면 출금, 3번을 선택하면 잔고를 보여주고 4번을 선택하면 프로그램 종료를 출력
Scanner scanner = new Scanner(System.in);
boolean flag = true;
int balance = 0;
while(flag) {
System.out.println("-----------------------------");
System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
System.out.println("-----------------------------");
System.out.print("선택>");
String str = scanner.nextLine();
String num = "";
if(str.equals("1")) {
System.out.print("예금액>");
num = scanner.nextLine();
balance += Integer.parseInt(num);
}else if(str.equals("2")) {
System.out.print("출금액>");
num = scanner.nextLine();
balance -= Integer.parseInt(num);
}else if(str.equals("3")) {
System.out.println("잔고>" + balance);
}else if(str.equals("4")) {
flag = false;
System.out.println("프로그램 종료");
}
}
scanner.close();
반복문을 사용하여 사용자가 100이 넘는 수를 입력하기 전까지
입력값의 합을 구하는 프로그램을 만드세요.
Scanner sc = new Scanner(System.in);
boolean flag = true;
int sum = 0;
while(flag) {
System.out.print("입력>");
int result = Integer.parseInt(sc.next());
System.out.println("입력값>" + result);
if(result > 100) {
flag = false;
}else {
sum += result;
System.out.println("합계>" + sum);
}
}
System.out.println("최종합계:" + sum);
sc.close();
사용자가 선택할 수 있는 메뉴는 총 3개입니다.
1:입력 2:출력 3:종료
사용자가
1을 선택한 경우 메시지를 입력할 수 있습니다.
2를 선택하는 경우 제일 마지막으로 1에 입력한 값을 출력합니다.
3을 선택하기 전까지 메뉴 선택을 반복합니다.
반복문을 사용하여 완성하세요.
Scanner sc = new Scanner(System.in);
String msg = "";
boolean flag = true;
while(flag) {
System.out.println("1:입력 2:출력 3:종료");
System.out.print("번호선택>");
String str = sc.next();
if(str.equals("1")) {
System.out.print("입력:");
msg = sc.next();
}else if(str.equals("2")) {
System.out.println(msg);
}else if(str.equals("3")) {
flag = false;
System.out.println("프로그램 종료");
}else {
System.out.println("번호를 잘못 선택하셨습니다.");
}
}
sc.close();
msg는 while 바깥에 선언해줘야한다. while 안에서 선언할 경우 1번 선택하고 입력한 값이 while문을 다시 돌면서
재선언되어 값이 담기지 않고 ""을 출력하게 된다.
do-while문
- 실행문을 실행하고 조건을 비교하는 반복문
- 반복의 조건만 알고 있으며 반드시 한번은 실행되어야 하는 경우 사용한다.
문법)
do{
실행문...
}while(조건식);
boolean flag = false;
do {
System.out.println("한번은 반드시 실행됩니다.");
}while(flag);
<보조제어문>
break문
- switch, for, while, do-while문에서 사용가능(if문에서는 사용불가)
- 각 구문을 강제 종료할 때 사용
- switch에서 사용하여 switch문을 강제 종료
- 반복문에서 사용하면 근접한 반복문 하나 강제 종료
- Label을 사용하면 원하는 반복문을 강제종료 할 수 있다.
stop: for(int i = 2; i <= 9; i++) {
for(int j = 1; j <= 9; j++) {
if(j > 5) {
break stop;
}
System.out.println(i+"x"+j+"="+(i*j));
}
}
원하는 위치의 반복문을 멈추고 싶을때 Label을 반복문 앞에 써주고
break 뒤에 Label 이름을 써주면 된다.
for(int i = 1; i <= 10; i++) {
System.out.println(i);
if(i > 5) {
break;
}
}
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.print("입력>");
String value = scanner.next();
System.out.println(value);
if(value.equals("q")) {
break;
}
}
scanner.close();
continue문
- 다음 반복으로 건너뛰기 할 때 사용하는 제어문
- continue 아래 실행문은 실행되지 않고 다음 반복으로 건너뛴다.
1~50까지의 짝수를 출력하세요
for(int i = 1; i <= 50; i++) {
if(i % 2 == 1) {
continue;
}
System.out.println(i);
}
'Java' 카테고리의 다른 글
[Java] String, String이 제공하는 기능들 (0) | 2024.07.28 |
---|---|
[Java] null, NullPointerException, 참조타입 (0) | 2024.07.27 |
[Java] for, 이중 for문 (2) | 2024.07.25 |
[Java] switch case (2) | 2024.07.24 |
[Java] if, else, else if, 중첩 if (3) | 2024.07.23 |