프로그래밍/Java 공부

조건문(if), 반복문(for)

개발계발게발 2021. 5. 21. 16:46
반응형

사용자가 숫자를 입력하면 짝수인지 홀수인지 출력하는 프로그램

요구사항
1. 숫자를 입력하세요 라고 출력
2. 숫자 입력을 int input로 받아라
3. 짝수이면 "짝수입니다." 홀수이면 "홀수입니다."라고 출력

import java.util.Scanner;
public class Input01 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자를 입력하세요 : ");
		int input = sc.nextInt();		
        
		if (input % 2 == 0) {
			System.out.println("짝수입니다.");
		} else {
			System.out.println("홀수입니다.");
		}
		sc.close();
	}
}

 

랜덤값(난수) 추출Math.random()

Math.random() 함수는 0부터 1보다 작은 임의의 숫자를 반환

 

Ex)  int number2 = (int) (Math.random() * 5 + 1); 사용시 1~5값 반환

     int number2 = (int) (Math.random() * 45 + 1); 사용시 1~45값 반환 (로또번호 추출)

 

public class If03 {
	public static void main(String[] args) {
		// 랜덤값 뽑기
		double random = Math.random() * 5 + 1;
		int number = (int) random;
		System.out.println(random);

		int number2 = (int) Math.random() * 5;
		System.out.println(number); // 1~5
		
		if (number == 1) {
			System.out.println("1 입니다.");			
		}else if(number == 2) {
			System.out.println("2 입니다.");			
		}
		else if(number == 3) {
			System.out.println("3 입니다.");			
		}
		else if(number == 4) {
			System.out.println("4 입니다.");			
		}
		else {
			System.out.println("5 입니다.");			
		}
	}

}


1. 랜덤한 값 두개 생성
2. if문으로 크기를 비교 (자리바꾸기)
3. 큰 수부터 출력.

1. 5
2. 8


1 + ">" + 2

 

public class If04 {
	public static void main(String[] args) {
		int random1 = (int) (Math.random() * 10 + 1);
		int random2 = (int) (Math.random() * 10 + 1);
		
		if(random1 < random2) {
			int temp = 0;
			temp = random1;
			random1 = random2;
			random2 = temp;
			System.out.println(temp);
		}
		//출력
		System.out.println(random1 + " > " + random2);			
	}
}

 

랜덤한 숫자를 3개 뽑아서
작은것부터 큰 것으로 정렬

 

public class If05 {
	public static void main(String[] args) {
		int random1 = (int) (Math.random() * 10 + 1);
		int random2 = (int) (Math.random() * 10 + 1);
		int random3 = (int) (Math.random() * 10 + 1);
		/*
		int temp = 0;
		
		if(random1>random2) {
			temp = random1;
			random1 = random2;
			random2 = temp;			
		}else if(random2>random3){
			temp = random2;
			random2 = random3;
			random3 = temp;	
		}else if(random1>random2) {
			temp = random1;
			random1 = random2;
			random2 = temp;			
		}
		*/
		System.out.println(random1 + ", " + random2 + ", " + random3);
		if(random2 >= random1 && random2 >= random3) {
			int temp = random3;
			random1 = random2;
			random3 = random2;
			random2 = temp;
		}else if(random1 >= random2 && random1 >= random3) {
			int temp = random1;
			random1 = random2;
			random2 = random3;
			random3 = temp;
		}		
		if(random1 >= random2) {
			int temp = random1;
			random1 = random2;
			random2 = temp;
		}		
		System.out.println(random1 + " <= " + random2 + " <= " + random3);		
	}
}

if 중첩

조건의 중첩 : 필요에 따라서 조건에 조건을 계속 중첩시키는 것

 

public class If06 {
	public static void main(String[] args) {
    
		double random = Math.random() * 150 + 1;
		System.out.println(random);
		
		int number = (int) random;
		System.out.println(number);
		
		//int number2 = (int)(Math.random() * 10 + 1);
		
		char ch = 'A';
		ch =(char) number;
		System.out.println("뽑은 글자 : " + ch);
		
		if(ch >= 'A') { //영어 대문자, 특수문자, 소문자, 특수문자
			System.out.println("영어 대문자 A이후.");
			if(ch <= 'Z') {
				System.out.println("영어 대문자");
			}else {
				System.out.println("영어 대문자 이후 문자");
				if(ch < 'a') {
					System.out.println("대소문자 사이 특수문자");
				}
				else {
					if(ch<='z') {
						System.out.println("영어 소문자");
					}
					else {
						System.out.println("영어 소문자 이후 특수 문자");
					}
				}
			}			
		}else {//영어 대문자 이전
			System.out.println("영어 대문자 A이전.");
			//숫자만
			if(ch >= '0' && ch <= '9') {
				System.out.println("숫자");
			}
		}
		//////////////////////////////////////////////////
		//논리연산자를 사용하여 해보기
		//AND사용
		if(ch >= 'A' && ch <= 'Z') {
			System.out.println("영어 대문자");
		}else if(ch >= 'a' && ch <= 'z') {
			System.out.println("영어 소문자");			
		}if(ch >= '0' && ch <= '9') {
			System.out.println("숫자");
		}
		
		//OR사용		
		if((ch >= 'A' && ch <= 'z') || (ch >= 'a' && ch <= 'z')) {
			System.out.println("영어 대소문자 입니다.");
		}	
	}
}

 

API (Application Programming Interface)

애플리케이션 프로그래밍 인터페이스
(응용 프로그램 프로그래밍 인터페이스)는
응용 프로그램에서 사용할 수 있도록,
운영 체제나 프로그래밍 언어가 제공하는
기능을 제어할 수 있게 만든 인터페이스

 

public class If06 {
	public static void main(String[] args) {				
		if( Character.isUpperCase(ch)) {
			System.out.println("대문자입니다.");	            
		}else if(Character.isLowerCase(ch)) {
			System.out.println("소문자입니다.");	            
		}else if(Character.isDigit(ch)) {
			System.out.println("숫자입니다.");			
		}else {
        System.out.println("특수문자입니다.");			
		}	
	}
}

 

가위 바위 보 게임

컴퓨터와 사람이 같이 가위/바위/보 중에 하나를 내고
if문으로 승패 여부를 출력

 

import java.util.Scanner;

public class If07 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		System.out.println("1. 가위\t2. 바위\t3. 보"); //tab
		System.out.println("원하는 번호를 눌러주세요");
		int user = sc.nextInt();
		int com =(int) (Math.random() * 3 + 1 ); // 1 2 3
		String val;
		if(com==1) {
			val="가위";			
		}else if(com==2){
			val="바위";					
		}else {
			val="보";
		}		
		System.out.println("컴퓨터가 낸 것 : "+val + "("+com+")");

		if(user==com) {
			System.out.println("비겼습니다.");
		}else if(user==1 && com==3 || user==2 && com==1 || user ==3 && com==2) {
			System.out.println("당신이 이겼습니다.");			
		}else {
			System.out.println("컴퓨터가 이겼습니다.");
		}*/
		if(user==com) {
			System.out.println("비겼습니다.");
		}else if((com - user == 1) || (com - user == -2)) {
			System.out.println("컴퓨터가 이겼습니다.");			
		}else {
			System.out.println("당신이 이겼습니다.");
		}	
	}
}

 

반복문

자바에서는 필요에 따라서 특정 문장을 반복적으로 실행해야 할때가 있다.
이때 사용되는 구문이 반복문, Loop문
자바에서는 세가지 형태의 반복문을 제공

  • for(forEach)
  • while
  • do~while

for(변수 초기화; 변수 조건문; 변수 증감식){
}

public class For01 {
	public static void main(String[] args) {

		int sum = 0;
		for (int i = 1; i <= 10; i++) {
			System.out.print(i);
			if (i == 10) {
				System.out.print("=");
			} else {
				System.out.print("+");
			}
			sum += i;
		}
		System.out.println("sum");
		sum = 0;
		for (int i = 1; i <= 10; i++) {
			if (i % 2 == 0) {

				System.out.print(i);
				if (i == 10) {
					System.out.print("=");
				} else {
					System.out.print("+");
				}
				sum += i;
			}
		}
		System.out.println("짝수의 총 합은 : " + sum);
	}
}

 

 

FizzBuzz
1부터 25사이의 숫자를 프린트하는 프로그램을 작성
3의 배수는 "Fizz"를, 5의 배수이면 "Buzz"
3과 5의 배수는 "FizzBuzz"를 출력

 

public class For02 {
	public static void main(String[] args) {

		for (int i = 1; i <= 25; i++) {
			if (i % 3 == 0 && i % 5 == 0) {
				System.out.println("FizzBuzz");
			} else if (i % 3 == 0) {
				System.out.println("Fizz");
			} else if (i % 5 == 0) {
				System.out.println("Buzz");
			} else {
				System.out.println(i);
			}
		}
	}
}

 

continue;  - 이하 실행구문은 무시하고 다시 조건문,반복문 처음으로

break;      - 조건문, 반복문 탈출

 

public class For03 {
	public static void main(String[] args) {
		
		for(int i=1; i<10; i++) {
			if(i%2==1) {
				continue;
			}
			System.out.println("2 x "+i+" = "+(2*i));
			//System.out.printf("2 X %d = %d\n", i, i * 2);
			//continue; - 이하 실행구문은 무시하고 다시 반복문으로 돌림
			//break;	- 조건문을 탈출
		}
	}
}

 

import java.util.Scanner;
//사용자가 입력한 숫자만큼 구구단 출력하기
public class For04 {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		System.out.println("출력할 단을 입력하세요.");
		int dan = sc.nextInt();
		
		System.out.println("숫자를 입력하세요. ");
		int num = sc.nextInt();

		for (int i = 1; i <= num; i++) {
			System.out.println(dan+" x " + i + " = " + (i * dan));
		}
		sc.close();
	}
}

 

package may21;

// 가위 바위 보 게임
// 컴퓨터와 사람이 같이 가위/바위/보 중에 하나를 내고
// if문으로 승패 여부를 출력해주세요

import java.util.Scanner;

public class If07 {
 public static void main(String[] args) {
  
  Scanner sc = new Scanner(System.in);
  System.out.println("1. 가위\t2. 바위\t3. 보"); //tab
  System.out.println("원하는 번호를 눌러주세요");
  int user = sc.nextInt();
  int com =(int) (Math.random() * 3 + 1 ); // 1 2 3
  String val;
  if(com==1) {
   val="가위";   
  }else if(com==2){
   val="바위";     
  }else {
   val="보";
  }
  
  System.out.println("컴퓨터가 낸 것 : "+val + "("+com+")");
  /*
  if(user==com) {
   System.out.println("비겼습니다.");
  }else if(user==1 && com==3) {
   System.out.println("당신이 이겼습니다.");   
  }else if(user==2 && com==1) {
   System.out.println("당신이 이겼습니다.");      
  }else if(user==3 && com==2) {
   System.out.println("당신이 이겼습니다.");
  }else {
   System.out.println("당신이 졌습니다.");
  }*/
  /*
  if(user==com) {
   System.out.println("비겼습니다.");
  }else if(user==1 && com==3 || user==2 && com==1 || user ==3 && com==2) {
   System.out.println("당신이 이겼습니다.");   
  }else {
   System.out.println("컴퓨터가 이겼습니다.");
  }*/
  if(user==com) {
   System.out.println("비겼습니다.");
  }else if((com - user == 1) || (com - user == -2)) {
   System.out.println("컴퓨터가 이겼습니다.");   
  }else {
   System.out.println("당신이 이겼습니다.");
  }
 
 }

}

 

 

반응형