2015 IT 웹 기반 개발자과정/JAVA

JAVA 선택제어문 / 반복제어문1 형성평가 1~5 (정올 JUNGOL)

한여름밤의코딩 2015. 10. 22. 13:45

선택제어문 형성평가 1~5(120~124)
반복제어문1 형성평가 1~5 (125~129)

선택제어문 형성평가 1]
두 개의 정수를 입력받아 큰 수에서 작은 수를 뺀 차를 출력하는 
프로그램을 작성하시오.
import java.util.Scanner;

public class IF1{
  public static void main(String[] args){
       int num1=0, num2=0;
       Scanner scanner = new Scanner(System.in) ;
       System.out.print("정수를 입력하세요=>");
       num1 = scanner.nextInt();
       System.out.print("정수를 입력하세요=>");
       num2 = scanner.nextInt();
       if(num1>num2){
          System.out.println(num1+"-"+num2+"="+(num1-num2));
       }else{
         System.out.println(num2+"-"+num1+"="+(num2-num1));
       }
  }//main() end
}//class end

선택제어문 형성평가 2]
정수를 입력받아 0 이면 "zero" 양수이면 "plus" 음수이면 "minus" 라고 출력하는 프로그램을 작성하시오.
import java.util.Scanner;

public class IF2{
  public static void main(String[] args){
       int num1=0;
       Scanner scanner = new Scanner(System.in) ;
       System.out.print("정수를 입력하세요=>");
       num1 = scanner.nextInt();
       
       if(num1==0){
          System.out.println("zero");
       }else if(num1>0){
         System.out.println("plus");
       }else if(num1 < 0){
    	   System.out.println("minus"); 
       }
  }//main() end
}//class end


선택제어문 형성평가 3]
년도를 입력받아 윤년인지 평년인지 판단하는 프로그램을 작성하시오
년도%4==0 윤년
년도%4==0 이면서 년도%100==0 평년
년도%4==0 이면서 년도%400==0 윤년

public class IF3{
  public static void main(String[] args){
       int year=0;
       Scanner scanner = new Scanner(System.in) ;
       System.out.print("년도를 입력하세요=>");
       year = scanner.nextInt();
       
       if(year%4==0){
    	   if(year%100==0) {
               System.out.println(year+"는 평년");
    	   }else if(year%400==0) {
    		   System.out.println(year+"는 윤년");
    	   }else{
    		   System.out.println(year+"는 윤년");
    	   }
       }else  {
    	   System.out.println(year+"는 평년");
       } 
  }//main() end
}//class end


public class IF3_1{
  public static void main(String[] args){
       int year=0;
       Scanner scanner = new Scanner(System.in) ;
       System.out.print("년도를 입력하세요=>");
       year = scanner.nextInt();
       
       if(year%4==0 && year%100==0){    	    
               System.out.println(year+"는 평년");
       }else if(year%4==0 && year%400==0) {
    		   System.out.println(year+"는 윤년");
       }else if (year%4==0){
    		   System.out.println(year+"는 윤년");    	 
       }else  {
    	   System.out.println(year+"는 평년");
       } 
  }//main() end
}//class end




선택제어문 형성평가 4]
다음과 같은 메시지를 출력하고 번호에 해당하는 동물을 영어로 출력하는
 프로그램을 작성하시오. 
해당 번호가 없으면 "I don't know." 라고 출력한다.
( "영어로 알고 싶은 번호를 입력하세요." 다음에 공백 주의 하세요. )

 입출력예의 진한 글씨는 결과값이다.


1. 개
2. 고양이
3. 병아리
영어로 알고 싶은 번호를 입력하세요. 2
cat

import java.util.Scanner;

public class Switch1{
  public static void main(String[] args){
       int num=0;
       Scanner scanner = new Scanner(System.in) ;
       System.out.println("1.개");
       System.out.println("2.고양이");
       System.out.println("3.새");
       System.out.print("영어로 알고 싶은 번호를 입력하세요=>");
       num = scanner.nextInt();
       
       switch(num)	 {  
       case 1 : System.out.println("Dog"); break;
       case 2 : System.out.println("Cat"); break;
       case 3 : System.out.println("Bird"); break;
       default : System.out.println("I don't Know");
       } 
  }//main() end
}//class end



선택제어문 형성평가 5]
1~12사이의 정수를 입력받아 평년의 경우 입력받은 월을 입력받아 
평년의 경우 해당 월의 날수를 출력하는 프로그램을 작성하시오.

CASE1
import java.util.Scanner;

public class Switch2{
  public static void main(String[] args){
       int month=0;
       Scanner scanner = new Scanner(System.in) ;        
       System.out.print("월을 입력하세요(1~12)=>");
       month = scanner.nextInt();
       
       switch(month)	 {  
       case 2 : System.out.println("28일"); break;
       case 1 :
       case 3 :
       case 5 :
       case 7 :
       case 8 :
       case 10 :
       case 12 :  System.out.println("31일"); break;
       case 4 : 
       case 6 :
       case 9 : 
       case 11 :System.out.println("30일");        
       } 
  }//main() end
}//class end

CASE2

Scanner sc = new Scanner(System.in);
		
	   int year, month;
	   int temp;

	   System.out.println("월수를 알고 싶은 \n년도와 월을 입력하세요. ex)1999 8");
	   year=sc.nextInt();
	   month=sc.nextInt();

	   if(year>=1000 && month>=1&&month<=12)
		    switch(month) {
		    case 2:
		     if((year%4 == 0 && year%100 != 0) || (year%400 == 0))  //윤년일 경우
		      System.out.println("29");
		     else
		      System.out.println("28");
		     break ;
		     
		    case 1:case 3:case 5:case 7:case 8:case 10:case 12:
		     System.out.println("31");
		     break;
		     
		    default:
		     System.out.println("30"); 
		     break;
		    }
	    }else{
	    System.out.println("잘못된 날짜입니다.");
	   }



반복제어문1 형성평가 1]
정수를 입력받아 1부터 입력받은 정수까지를 차례대로 출력하는 
프로그램을 작성하시오.
import java.util.Scanner;

public class For1{
  public static void main(String[] args){
       int num=0;
       Scanner scanner = new Scanner(System.in) ;        
       System.out.print("정수를 입력하세요 =>");
       num = scanner.nextInt();
       
       for(int i=1;i<=num;i++){
    	   System.out.print(i+",");
       }
  }//main() end
}//class end


반복제어문1 형성평가 2]
정수를 입력받다가 0 이 입력되면 그 때까지 
입력받은 홀수의 개수와 짝수의 개수를 출력하는 프로그램을 작성하시오.

import java.util.ArrayList;
import java.util.Scanner;


 정수를 입력받다가 0 이 입력되면 그 때까지 
입력받은 홀수의 개수와 짝수의 개수를 출력하는 프로그램을 작성하시오.
 

public class While1{
  public static void main(String[] args){
       int num=0, even=0, odd=0;
       Scanner scanner = new Scanner(System.in) ;        
       System.out.print("정수를 입력하세요 =>");
       while(true) {
         num = scanner.nextInt();
         if(num==0) {
        	 break;
         }else{
        	 if(num%2==0){
        		 even++;
        	 }else{
        		 odd++;
        	 }
         }
       }//while end
       System.out.println("짝수의 개수 :"+even);
       System.out.println("홀수의 개수 :"+odd);        
  }//main() end
}//class end

반복제어문1 형성평가 3]
0 부터 100 까지의 점수를 계속 입력받다가 범위를 벗어나는 수가 
입력되면 그 이전까지 입력된 자료의 합계와 평균을 출력하는 프로그램을 작성하시오. 
(평균은 반올림하여 소수 첫째자리까지 출력한다.)


55 100 48 36 0 101

합계 : 239점
평균 : 47.8점

 
import java.util.Scanner;

public class While2{
  public static void main(String[] args){
       int num=0, sum=0,  avg=0;
       double cnt=0;
       Scanner scanner = new Scanner(System.in) ;        
       System.out.print("점수를 입력하세요 =>");
       while(true) {
         num = scanner.nextInt();
         if(num >100 || num < 0) {
        	 break;
         }else{
        	  sum += num; //총점  sum=sum+num
        	  cnt++;
         }
       }//while end
       System.out.println("총점 :"+sum);
       System.out.println("평균 :"+(sum/cnt));        
  }//main() end
}//class end



반복제어문1 형성평가 4]
0 이 입력될 때까지 정수를 계속 입력받아 3의 배수와 5의 배수를 
제외한 수들의 개수를 출력하는 프로그램을 작성하시오.


1 2 3 4 5 6 7 8 9 10 0

5

 

CASE1

import java.util.Scanner;

public class While3{
  public static void main(String[] args){
       int num=0, cnt=0;   
       Scanner scanner = new Scanner(System.in) ;        
       System.out.print("정수를 입력하세요 =>");
       while(true) {
         num = scanner.nextInt();
         if(num == 0) {
        	 break;
         }else{
        	  if(num%3==0 || num%5==0 ){
        		  continue;
        	  }else {
        	      cnt++;
        	  }
         }
       }//while end
       System.out.println("3의 배수도 5의 배수도 아닌 정수의 개수 "+cnt);           
  }//main() end
}//class end

CASE2

System.out.println("정수를 입력하세요");
		
	Scanner sc = new Scanner(System.in);
		
	int input = 0;
	int n35_sum= 0, sum= 0;
		
	while(true){
		input = sc.nextInt();
		sum++;
			
		if(input==0){
			break;
		}else if(input%3==0 && input%5!=0){
			n35_sum++;
		}else if(input%5==0 && input%3!=0){
			n35_sum++;
		}else if(input%15==0){
			n35_sum++;
			}
		}
		 System.out.println("3과 5의배수 개수"+n35_sum);
		 System.out.println("배수를 제외한 나머지 개수"+(sum-n35_sum-1));
	}



반복제어문1 형성평가 5]
삼각형의 밑변의 길이와 높이를 입력받아 넓이를 출력하고,
 “계속하시겠습니까?”에서 하나의 문자를 입력받아 
그 문자가 'Y'나'y'이면 작업을 반복하고 다른 문자이면 
종료하는 프로그램을 작성하시오. 
(넓이는 반올림하여 소수 첫째자리까지 출력한다.)

밑변의 길이 = 11
높이 = 5
입력한 삼각형의 넓이는 27.5입니다.
계속하시겠습니까? Y
밑변의 길이 = 10
높이 = 10
입력한 삼각형의 넓이는 50.0입니다.
계속하시겠습니까? N

 
import java.util.Scanner;

 밑변의 길이 = 11
높이 = 5
입력한 삼각형의 넓이는 27.5입니다.
계속하시겠습니까? Y
밑변의 길이 = 10
높이 = 10
입력한 삼각형의 넓이는 50.0입니다.
계속하시겠습니까? N
 

CASE 1
public class While4{
  public static void main(String[] args){
       double width=0, height=0;   
       String answer = null;
       Scanner scanner = new Scanner(System.in) ;
       A1 :
       while(true) {
         System.out.print("밑변의 길이를 입력하세요 =>");       
         width = scanner.nextDouble();
         System.out.print("높이를 입력하세요 =>");       
         height = scanner.nextDouble();
         System.out.println("입력한 삼각형의 넓이는 "+(width*height/2)+"입니다.");
         System.out.print("계속하시겠습니까?");  
         answer = scanner.next();
         switch(answer.charAt(0)){
         case 'Y' :
         case 'y' : continue;
         default : break A1;
         }
       }//while end            
  }//main() end
}//class end

CASE 2
Scanner sc = new Scanner(System.in);
		
	double width = 0, height =0;
	String go = "y";
	while(go.charAt(0)=='y'||go.charAt(0)=='Y'){
			
		System.out.println("밑변과 높이의 길이를 입력하세요");
		width = sc.nextDouble();
		height = sc.nextDouble();
			
		System.out.println("넓이는 "+width*height/2+ "입니다");
		System.out.println("계속 하시겠습니까? \n 계속 하시려면 y 또는 Y를 입력해주세요");
			
		go = sc.next();
		if(go.charAt(0)=='y'||go.charAt(0)=='Y'){
		continue;
	
		}else{
			System.out.println("종료하셨습니다");
		}