공부/JAVA

[JAVA 조건문] 최대 공약수 찾기 , 약수 계산하기, 난수의 합 계산하기, 숫자 추측 게임, 로또 확률 계산

순제로 2022. 8. 21. 01:24
728x90

최대 공약수 찾기 : while

Gcd.java

import java.util.*;
public class Gcd {

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		int a, b, c;
		
		System.out.print("두개의 정수를 입력하시오(큰수, 작은수)");
		a=input.nextInt();
		b=input.nextInt();
		
		//사용자로부터 정수들이 입력되어 x와 y로 저장된 다음에, 최대 공약수를 계산하는 while 루프로 들어간다.
		// while 이 값이 화면에 출력된다.
		while(b!=0)
		{
			c=a%b;
			a=b;
			b=c;
		}
		
		System.out.println("최대 공약수는 : "+ a);
		
	}

}

 

실행결과 : 36 12 입력(, 는 입력x)

 

 

약수 계산하기 : for

Divisor.java

import java.util.*;
public class Divisor {

	public static void main(String[] args) {
		
		Scanner scan= new Scanner(System.in);
		
		System.out.print("양의 정수를 입력하시오 : ");
		int a = scan.nextInt();
		
		System.out.println(a+"의 약수는 다음과 같습니다.");
		
		for(int i=1;i<=a;i++) {
			if(a%i==0) {
				System.out.print(i+" ");
			}
		}
	}

}

 

출력결과

 

난수의 합 계산하기 : for

RandomNumber.java

import java.util.*;
public class RandomNumber {

	public static void main(String[] args) {
	
		Random generator = new Random();
		
		System.out.print("난수의 개수 : ");
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int sum=0;
		
		for(int i=0;i<n;i++) {
			int number = generator.nextInt(100);
			sum += number;
		}
		
		System.out.println("난수 "+ n + "개의 합은"+ sum);
	}

}

 

출력결과 : 입력 5000

숫자 추측 게임 : do-while 문

NumberGame.java

import java.util.*;
public class NumberGame {

	public static void main(String[] args) {
	
		int answer = 100;
		int s=0;
		int guess;
		Scanner scan = new Scanner(System.in);
		
		System.out.println("정답을 추측하여 보시오.");
		
		do {
			guess = scan.nextInt();
			s++;
			
			if(guess<answer)
				System.out.println("숫자가 낮습니다.");
			
			if(guess>answer)
				System.out.println("숫자가 높습니다.");
			
		}while(guess !=answer);
		
		System.out.println("축하합니다. 시도횟수 = " + s);
			
			

	}

}

출력결과

 

로또 확률 계산 : for문

Lottery.java

public class Lottery {

	public static void main(String[] args) {
		int odds = 1;
		final int n = 45;
		final int k = 6;
		 for(int i =1; i<=k; i++)
			 odds = odds * (n-i+1)/i;
		 
		 System.out.println("로또 1등 확률: 1/"+odds);

}
}

 

출력결과


**반복문(iteration statements)

반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문입니다.

프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많으므로, 가장 많이 사용되는 제어문 중 하나입니다.

 

1. while 문

while 문은 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행합니다.

http://www.tcpschool.com/java/java_control_loop

 

2. do / while 문

do / while 문은 조건식의 결과와 상관없이 무조건 한 번은 루프를 실행합니다.

http://www.tcpschool.com/java/java_control_loop

3. for 문

for 문은 while 문과는 달리 자체적으로 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문입니다.

따라서 while 문보다는 좀 더 간결하게 반복문을 표현할 수 있습니다.

http://www.tcpschool.com/java/java_control_loop

 

4. Enhanced for 문

 뒤의 예제에서 다룰 예정


**기타 제어문 : 

1. continue

continue 문은 루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 해줍니다. 보통 반복문 내에서 특정 조건에 대한 예외 처리를 하고자 할 때 자주 사용됩니다.

 

2. break

break 문은 루프 내에서 사용하여 해당 반복문을 완전히 종료시킨 뒤, 반복문 바로 다음에 위치한 명령문을 실행합니다.

즉 루프 내에서 조건식의 판단 결과와 상관없이 반복문을 완전히 빠져나가고 싶을 때 사용합니다.

 

728x90