[while/do~whil문 예제]
예제1)
키보드로부터 입력받은 수가 10보다 작을 때만 계속 숫자를 입력할 수 있는 프로그램을 작성하시오.(While문/do~while문 모두 작성) **반복문 중간에 나가야 할 경우 break 사용
while문
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("숫자입력 : ");
int num = 0;
num=sc.nextInt();
if(num>=10) {
break;
}
}
}
}
do~while문
package 연산자;
import java.util.Scanner;
public class 복습파일 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = 0;
do {
System.out.print("숫자 입력 : ");
num = sc.nextInt();
} while (num < 10);
System.out.println("종료!");
}
}
예제2) 키보드로부터 입력한 숫자를 누적하여 누적결과를 출력해 주는 프로그램을 작성하시오.(단, -1을 입력한 경우 프로그램 종료) (while문/ do~while문 모두 작성)
while 문
package review;
import java.util.Scanner;
public class ex01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = 0;
int sum = 0;
while(num!=-1) {
System.out.print("숫자입력 : ");
sum = sum+num;
num=sc.nextInt();
if(num==-1)
break;
}
System.out.println("누적결과 : " + sum);
}
}
do~while문
package review;
import java.util.Scanner;
public class ex02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num =0;
int sum =1;
do {
System.out.print("숫자 입력 : ");
num = sc.nextInt();
sum+=num;
}while(num!=-1);
System.out.println("누적 결과 : " + sum);
}
}
예제3) 키보드로부터 입력한 숫자를 입력받아 홀수와 짝수가 각각 몇 개 입력되었는치 출력하는 프로그램을 작성하시오. (단, -1을 입력한 경우 프로그램 종료) (반복문 안에서 조건문 사용가능!)
package review;
import java.util.Scanner;
public class ex02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = 0;
int sum1 = 0;// 홀수
int sum2 = 0; //짝수
while(num!=-1) {
System.out.println("숫자 입력 : ");
num = sc.nextInt();
if(num%2==1){
sum1++;
}else if(num%2==0){
sum2++;
}
}
System.out.println("홀수 개수 : "+sum1);
System.out.println("짝수 개수 : "+sum2);
}
}
예제4) 다이어트 프로그램 만들기
package while문;
import java.util.Scanner;
public class 복습 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("현재 몸무게 : ");
int cut = sc.nextInt();
System.out.print("목표 몸무게 : ");
int goal = sc.nextInt();
int week =1;
while(true) {
System.out.print(week + "주차 감량 몸무게 : ");
week++;
int weight = sc.nextInt();
System.out.println("현재 몸무게 : "+ (cut-=weight) );
if(cut<=goal) {
System.out.println("최종몸무게 : "+cut);
System.out.println("축하합니다!!!");
break;
}
}
}
}
예제5) 로그인 프로그램 만들기
사용자가 입력한 아이디가 "smhrd"이고 비밀번호가 "1234"인 경우만 로그인 될 수 있도록 하고 그렇지 않은 경우에는 로그인 할 수 없는 로그인 프로그램을 작성하시오. (단, 입력기회는 3번)
5-1) 아이디와 비밀번호를 각각 입력받고 아이디가 "smhrd"이고 비밀번호가 "1234"인 경우 "로그인 성공"문구를 출력하고 하나라도 틀린 경우에는 "로그인 실패"를 출력하시오.
5-2. 로그인이 실패했을 경우에는 계속해서 아이디와 비민번호를 입력하고 로그인이 성공하면 프로그램을 종료하시오.
5-3.아이디나 비밀번호가 틀렸을 경우 "계속 하시겠습니까?"라는 문장을 출력하고 사용자가 "Y"를 입력하면 입력을 계속하고 "N"를 입력하면 입력을 중단하시오.
5-4. 아이디/비밀번호 입력을 3번 이상 틀렸을 때 "본인인증을 해주세요" 문구를 출력하고 프로그램을 종료하시오.
package review;
import java.util.Scanner;
public class abc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int cnt = 0;
String id = "";
String pw = null;
do {
System.out.print("아이디: ");
id = sc.next();
System.out.print("비밀번호: ");
pw = sc.next();
if(id.equals("smhrd")||pw.equals("1234")) {
System.out.println("로그인 성공!");
break;
}else {
System.out.println("로그인 실패");
cnt++;
if(cnt==3) {
System.out.println("본인인증을 해주세요");
break;
}
}
System.out.print("계속하시겠습니까?");
String answer = sc.next();
if(answer.equals("n")|| answer.equals("N")) {
break;
}
}while(true);
}
}
6. +/- 계산기 프로그램 만들기
package review;
import java.util.Scanner;
public class abc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true){
System.out.print("정수1 : ");
int num1 = sc.nextInt();
System.out.print("정수2 : ");
int num2 = sc.nextInt();
int sum=num1+num2;
int mul = num1-num2;
System.out.print("연산자(+/-) : ");
String sign = sc.next();
if(sign.equals("+")){
System.out.println(num1+ "+" +num2 +"="+ sum);
}else if(sign.equals("-")){
System.out.println(num1+ "-" +num2 +"="+ mul);
}else {
}
System.out.println("계속하시겠습니까? (Y/N)");
String answer = sc.next();
if(answer.equals("n")||answer.equals("N")) {
System.out.println("종료");
break;
}else if(answer.equals("y")||answer.equals("Y")) {
continue;
}
break;
}
}
}
7. PIUS 게임만들기
랜덤으로 정수 2개를 뽑아 덧셈 식을 출력하고 사용자는 답을 입력하여 사용자가 원할 때 까지 게임을 계속하고 맞춘 횟수와 틀린 횟수를 출력하는 프로그램을 작성하시오.
**0~9 까지 정수 중 랜덤 수 뽑는 법
Random rd = new Random(); int ran = rd.nextInt(10); |
7-1) 1~10 까지 정수 중 랜덤으로 2개를 뽑아 다음과 같이 출력하시오
7-2) 사용자가 값을 입력한 후 값이 답과 일치할 경우 "Success"를 출력하고 일치하지 않을 경우 "Fail"을 출력하시오.
7-3) 결과를 출력한 후 "계속하시겠습니까"를 출력하여 "Y"를 입력하면 계속해서 게임을 진행하고 "N"을 입려가면 게임을 중단하시오.
7-4) 사용자가 답을 입력한 결과가 "Success"인 경우에는 새로운 숫자를 뽑아서 문제를 출력하고 "Fail"인 경우에는 기존의 문제를 다시 출력하시오.
7-5) 프로그램 종료 시 사용자가 답을 맞춘 횟수와 틀린 횔수를 출력하시오.
package review;
import java.util.Random;
import java.util.Scanner;
public class ex02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rd = new Random();
boolean sw = true; // true일때 새로운 문제 false일때 같은문제
int num1= rd.nextInt();
int num2 = rd.nextInt();
int o = 0;
int x = 0;
while(true) {
if(sw==true) {
num1 =rd.nextInt(10)+1;
num2 = rd.nextInt(10)+1;
}
System.out.printf("%d + %d = ",num1,num2);
int input = sc.nextInt();
if(input==num1+num2) {
System.out.println("Success!");
sw=true;
o++;
}else {
System.out.println("Fail");
sw=false;
x++;
}
System.out.println("계속하시겠습니까?");
String answer = sc.next();
if(answer.equals("n")||answer.equals("N")) {
System.out.println("종료");
break;
}else if(answer.equals("y")||answer.equals("Y")){
continue;
}
}
System.out.println("맞춘개수 : "+o);
System.out.println("틀린개수 : "+x);
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 객체, 클래스,인스턴스의 차이 및 예시 (0) | 2022.08.27 |
---|---|
자바 이클립스 프로젝트 파일열기(import) (0) | 2022.08.25 |
자바 변수,연산자, 조건문 예제 (0) | 2022.08.21 |
명품 자바프로그래밍 1장 연습문제 (0) | 2022.08.21 |
절차지향/객체지향/함수형 프로그래밍 비교 (0) | 2022.08.21 |