ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA_04_실습_반복문과 조건문
    1. JAVA/1.2 실습 2022. 3. 14. 14:51

    문제1 ]

    1 부터 정수를 더해갔을때 그합이 5000을 초과하는 수는 몇부터인지 출력하세요.
    (처음 합이 5000이 넘는 순간 반복문을 종료한다.)

     

    public class Ex01_1 {
    
    	public static void main(String[] args) {
    	int sum = 0;
    	int result = 0;
    	for(int i = 0;;i++) {
    		sum+=i;
    		
    		if(sum>5000) {
    			System.out.println(i);
    			break;
    		}
    	}
    	
    	}
    }

    문제2 ] 1 ~ 10 까지의 합을 구해서 출력해주는 프로그램을 작성하세요.
             (합은 결과값 변수로 만들어서 처리하세요.)

    	public static void main(String[] args) {
    		int hap = 0;
    		for(int i = 0; i<10; i++) {
    			hap += (i+1);
    		}
    		System.out.println("1부터 10까지의 합은 : "+hap);
    		
    		int gop = 1;
    		for(int i= 0; i<10; i++) {
    			gop *= (i+1);
    		}
    		System.out.println("1부터 10까지의 곱은 : "+gop+"입니다.");  }

    문제3 ] 3 ~ 10 사이의 정수를 랜덤하게 발생시켜서 그 정수를 길이로 하는 영어 단어를 랜덤하게 만드세요.
              단, 시작문자는 대문자로 하고 나머지는 소문자로 하세요.

    	public static void main(String[] args) {
    	int input = (int)((Math.random()*(10-3+1))+3);
    	System.out.println("입력받은 정수 :"+input);
    	
    	int num = 0;
    	int result = 'a'-'A';
    	char ch = 'A';
    	for(int i = 0; i<input;i++) 
    	{
    		num +=1;
    		int temp = ch+(num-1);
    		if(i>0) {
    			temp = ch+(num-1)+result;
    		}
    		System.out.print((char)temp+" ");
    	}
    	}

    문제4 ] 'A' 부터 문자를 10개를 만들어서 출력하세요.

    	public static void main(String[] args) {
    	char ch = 'A';
    	
    	for(int i = 0; i<10;i++) {
    		ch+=1;
    		System.out.println((char)(ch-1));
    	}
    		}
    
    }


    문제 5] 0 ~ 255 사이의 정수를 10개를 랜덤하게 만들고 그 정수를 아스키 코드값으로 하는 문자열을 만들어서
              만들어진 문자열의 문자를 하나씩 추출해서 추출한 문자가 대문자인지 소문자인지 특수문자인지를 출력하는
               프로그램을 작성하세요.
              (문자열의 길이를 알아내는 방법 : int 변수 = 문자열.length();) 

    public static void main(String[] args) {
    		int A = 'A';//24??
    	int B = 'Z';
    	int C = 'a';//48
    	int D = 'z';
    	String str = "특수문자 입니다.";
    	int ran = 0;
    	char ch = ' ';
    	//A<ran<B
    	for(int i = 0; i<10;i++) {
    		ran = (int)((Math.random()*(255-0+1)));
    		ch = (char)ran;
    		if(ran>=A &&ran<=B) {str = "대문자 입니다.";	}
    		else if(ran>=C&&ran<=D) {str = "소문자 입니다.";}
    		else {str = "특수문자 입니다.";}
    		System.out.print((i+1)+"번째 : "+ch+" : "+str+"\n");	}
    	}
    }


    문제 4 ]
    전기요금을 계산해주는 프로그램을 작성하세요.

    /*
    	
    			전기요금표
    				
    							코드		기본요금		사용요금
    				가정용		1			3800			245
    				산업용		2			2400			157
    				교육용		3			2900			169
    				상업용		4			3200			174
    				
    				
    			전기요금은 
    				기본요금 + 사용량 * 사용요금
    				
    			사용자 코드와 사용량을 입력하면
    			전기요금을 계산해서 출력해주는 프로그램을 작성하세요.
    */
    public class Ex04 {
    
    	public static void main(String[] args) {
    	//할일
    	//1. 입력도구 준비.
    	Scanner sc = new Scanner(System.in);
    	while(true) {
    	// 2. 용도 입력 메세지 출력.
    	System.out.print(" * 사용용도 코드를 입력하세요\n\t가정용\t1\n\t산업용\t2\n\t
                          교육용\t3\n\t상업용\t4\n\t종료\t0\n입력코드 : ");
    	// 3. 입력받아서 변수 기억.
    	int code = sc.nextInt();
    	/*
    	 	블럭킹 함수(Blocking Method)
    	 		: 특정 상황이 될때까지 그 함수에서 실행을 멈추고 기다리는 함수
    	 */
    	
    	// 입력할때까지 기다리는 함수 ex 웹사이트 접속할때..
    	if(code==0) {
    		System.out.println("프로그램을 종료합니다");
    		//이 경우 프로그램 즉시 종료해야 하므로 break
    		break;
    	}
    //	System.out.println("입력코드 : "+code);
    	// 2-1 사용량 입력 메세지 출력.
    	System.out.print("사용량 입력 : ");
    	// 3-1 입력받아서 변수 기억한다.
    	int sayong = sc.nextInt();
    	//4. 용도에 맞게 계산해서 변수에 기억시키고. ==> 조건으로 분기처리
    	String yd ="가정용";
    	int money = 0;
    	switch(code) {
    		case 1:
    			yd = "가정용";
    			money = 3800+245*sayong;
    		break;
    		case 2:
    			yd = "산업용";
    			money = 3800+245*sayong;
    		break;
    		case 3:
    			yd = "교육용";
    			money = 2900+169*sayong;
    			
    		break;
    		case 4:
    			yd = "상업용";
    			money = 3200+174*sayong;
    		break;
    	}
    	System.out.println("입력된 코드는 "+yd+"용으로 사용량은 "+
    			sayong+"이고\n\t총 전기요금은 : "+money+"원 입니다.");	
    	System.out.println();
    		
    	}
    	//5. 출력
    		
    	}
    }


    문제 5 ]
    컴퓨터와 사용자 사이의 가위바위보 게임을 한다.

    컴퓨터는 랜덤하게 1 ~ 3 사이의 숫자를 발생하여 가위, 바위, 보로 가정하고
    사용자는 키보드를 이용해서 1 ~ 3 사이의 숫자를 입력하도록 한다.

    누가 이겼는지를 확인하는 프로그램을 작성하세요.

    풀이]
    		컴퓨터 - 사람 으로 계산해서 
    		 컴퓨터
    		(가위) (바위) (보)
    		 	1	2	3
    	가위 1	0	1  	2
    	바위 2	-1	0	1
    	보   3	-2	-1	0
    		 
    		 여기서 
    		 비긴 경우, 결과값	0
    		 컴퓨터가 이긴경우	1,-2 
    		 사람이 이긴경우 -1,2 
    		 
    */
    
    import java.util.*;
    
    public class Ex05 {
    
    	public static void main(String[] args) {
    	//할일
    	//1. 입력도구 준비
    		Scanner sc = new Scanner(System.in);
    		
    	while(true) {
    		
    	//2. 입력메세지 출력
    		System.out.print("가위 : 1, 바위 : 2, 보 : 3을 입력하세요\n게임종료는 : 0");
    	
    	//3. 입력받아서 변수에 기억
    		int saram = sc.nextInt();
    		//입력된 숫자가 종료숫자이면 바로 종료
    			if(saram==0) {
    				sc.close();
    				break;}
    			// 랜덤하게 컴퓨터 숫자 생성
    			int com = (int)Math.random()*(3-1+1);
    		
    			//컴퓨터와 사람의 코드에 따라서 가위, 바위 보를 기억할 변수
    			String sstr = " ";
    			
    			switch(saram) {
    			case 1 : 
    				sstr = "가위";
    				break;
    			case 2 : 
    				sstr = "바위";
    				break;
    			case 3 : 
    				sstr = "보";
    				break;
    			default: 
    				continue; //switch 실행 X => 조건식으로 가서 블록 다시 실행..
    				
    			}
    			
    
    		String comstr = "가위";
    		switch(com) {
    		case 2 : 
    			sstr = "바위";
    			break;
    		case 3 : 
    			sstr = "보";
    			break;	
    		}
    		
    //	//5. 계산해서 결과값 만들고
    //		 여기서 
    //		 비긴 경우, 결과값	0
    //		 컴퓨터가 이긴경우	1,-2 
    //		 사람이 이긴경우 -1,2 
    		
    		
    			int result = com-saram;
    			String msg = "비";
    			if(result==1||result==-2) 
    			{
    				msg = "컴퓨터가 이";
    
    			}
    			else if(result==-1||result==2) 
    			{
    				msg = "사람이 이";
    
    			}
    			else 
    			{
    
    			}
    			
    			System.out.println("컴퓨터는 "+comstr + "\n, 사람은 "+sstr+"으로\n*** "+msg+"겼습니다.***" );
    			System.out.println();
    	//6. 조건에 따라서 결과 출력 
    			
    	}
    			System.out.println("##### 게임이 종료되었습니다. #####");	//반복문 종료 후 출력
    	}	
    
    	
    	
    	}

    '1. JAVA > 1.2 실습' 카테고리의 다른 글

    JAVA_05_실습_반복문과 조건문3  (0) 2022.03.16
    JAVA_05_실습_반복문과 조건문2  (0) 2022.03.14
    JAVA_03_실습_연산자2  (0) 2022.03.14
    JAVA_02_실습_연산자  (0) 2022.03.14
    JAVA_01_실습_데이터종류  (0) 2022.03.14
Designed by Tistory.