5일차 if,switch조건문과 for반복문 그리고 조별과제

2. 조건문 (if문, switch문)

---------------------점수에 대해서----------------------
	
    public static void main(String[] args) {
		
		int from = 0 ; 
		int to = 100;
		
		
		int score = (int)(Math.random()*to) + from;
		System.out.println("점수: " + score);
		
		String grade;
		
		if(score>=90) {
			if(score>=95) { // 중첩 
				grade = "A+";//그 안에서의 범위를 또 나눈다.
			} else {
				grade = "A";//그 안에서의 범위를 또 나눈다.
			}
		} else {	
			if(score>=85) { // 중첩 
				grade = "B+"; //그 안에서의 범위를 또 나눈다.
			} else {
				grade = "B"; //그 안에서의 범위를 또 나눈다.
			}
		}
		
		System.out.println("점수: " + grade);

	} //main

스위치문

-스위치문 변수로 올 수 있는 타입
(1). 정수타입 (2). 문자타입 (3). 문자열타입
(4). 열거형 // 실수타입은 오지못해요.

---------------스위치문 완전 기본 문법--------------------

public static void main(String[] args) {
		 int length = 6;
		 int from = 1;
		 int to = length-from+1;
		int num = (int)(Math.random()*to) + from;
		
	
		switch(num) {
			case 1:
				System.out.println("1번입니다.");
				break;
			case 2:
				System.out.println("2번입니다.");
				break;
			case 3:
				System.out.println("3번입니다.");
				break;
			case 4:
				System.out.println("4번입니다.");
				break;
			case 5:
				System.out.println("5번입니다.");
				break;
			default:  // default 문은 가운데로 갈 수도 있고 break 를 안넣을수도 있는데 그러면 안된다.
				System.out.println("6번입니다."); 
				break;
		} // Switch
	} // main 
-----------------string 과 char문의  Switch문 ------------------

public static void main(String[] args) {
		String position = "과장" ; 
		
		switch(position) {
		case "부장" : 
			System.out.println("700만원");
			break;

		case "과장" : 
			System.out.println("500만원");
			break;
			
		case "사원" : 
			System.out.println("300만원");
			break;
		}
		
		
		char grade = 'b';
		
		switch(grade) {
		case 'a' : 
		case 'A' : 
			System.out.println("우수회원");
			break;
		case 'b' : 
		case 'B' : 
			System.out.println("일반회원");
			break;
			
		default: 
			System.out.println("비회원");
			break;
		}
--------------------------------break 없는 switch문 : 여러 중복해야 하는 ----------------------------

public static void main(String[] args) {
		int time = (int)(Math.random()*4) +8; 
		
		System.out.println("[현재시간:" + time + " 시]");
		
		switch(time) {
		case 8:
			System.out.println("출근합니다.");
		case 9:
			System.out.println("회의를 합니다.");
		case 10:
			System.out.println("업무를 합니다.");
		default:
			System.out.println("외근을 나갑니다.");
		
		} //switch

	} // main 

3. 반복문 (for문, while문, do-while문)

중괄호 블록내용을 반복적으로 실행할 때 사용

종류: for문 , while 문, do - while 문

(1) for문 : 반복횟수를 알고 있을때 쓰는 문장

 ------------------------for문 기본 예제--------------------
 
 // 반복할 횟수가 정해져 있을 때, 정해진 반복횟수만큼 
		// for block을 반복 수행하는 문장
	public static void main(String[] args) {
		for(int i =1; i <=10; i++) {
			
			// 초기식의 i 변수의 이름= 카운터 변수 /loop라는 영어이름은 잘안씀. 
			System.out.println(i);
			}//for
//----------------------------------------------------------------
		int sum= 0; 
		int i =0 ; 
		
		for(i=1; i<=100; i++) {
			sum+=i; // 복합대입 연산자 += 
			// sum = sum + i;
		} // for
	
		System.out.println(i);
		
//-----------------------------------------------------------	
		// for ( ; ; ) {} << 무한루프 -- 컴퓨터 CPU 고장남
		//  반드시, 탈출 조건을 넣어야한다. if(10<=i){break;}
//----------------------------------------------------------
		// int i=1;
		//for (;i<=10;){i++} << 가능 
		// 
		

		
		
	}// main
-----------------------중첩 for문에 대한 구구단 예제 -----------------------------


public static void main(String[] args) {
	
		for (int y=1; y<=9 ; y++) {
			for(int i =1; i <=9; i++) {
				System.out.println(y+" x "+ i + "=" + i*y );
			}//inner - for

		}//outer- for
	}// main
------------------------for문 float 카운트변수 예제-----------------------

public static void main(String[] args) {
	
		// 실수타입으로 카운터 변수를 사용하면 안된다 !!(부작용 발생.)
		for(float i =0.1F; i <=0.1f; i+=0.1f) {
			
			System.out.println(i);
			}//for

	}// main

알고리즘을 짜라고 하셔서 계속 어떻게 해야 간결하게 할 수 있다가 다들 if문 사용하는데 나만 다르게 if 문 없이 해보았다. 기존의 기준이랑 생각을 뒤집으려고 머리가 너무 아프다.. 1시간 30분동안 골머리 싸맨 코드다.

	public static void main(String[] args) {
		int day=1; //날짜 
		int cave =300;  // 동굴 
		int drop=17; // 하루 떨어지는 높이 
		int gap = 23; // 하루 떨어지고 올라갔을때 
		int high =40; //하루 올라가는 높이; 
		int sum = high; // 매일매일 올라가고 떨어지는 높이들의 합 
		
		for( ;sum<cave; day++) {  
			sum= (gap*(day-1))+ high;
			System.out.println(day+ "일차"); 
			System.out.println(sum); 
			}// for 
		
//		올라가 /내려가 올라가/ 내려가  올라가/ 
//		1		2 일 사이 	     3 일
// 간결화  //밤에 내려가고//  도착은 무조건 그 날 낮에  		
//  		
	}//main

현재 시간 23시 30분쯤 수업 끝날 때 추가 조별 과제를 내주셨다 . 팀별로 브레인스토밍 하라구 하셨는데 다들 자러가서 혼자 한 번 알고리즘 짜보고 코드짜봤다 두근 두근 설렜다.
나도 이제 자야겠다..


//		    
//		
//		   step.1  종료시점까지 열심히 곱해야한다. (팩토리의 현재 상황)
//		   step.2  멈추기 위해서는 원하는 값이 무엇인지 물어본다.  (요구사항 확인)
//					2-1. n!의 값을 물어보는지?  
//                       2-1-1 n의 값이 정수이면 step3 수행 
//					     2-1-2 n의 값이 실수이면 사과문 출력하고 종료.
//					2-2. 임의의수를 정하고 값을 비교값 요구
//					2-3. 임의의수보다 작거나 큰값을 요구
//		   step.3  원하는 값과 현재의 값이 충족하는지 비교한다. (비교)
//					 3-1. 임의의수보다 작거나 큰값을 요구 안내문 보내고 종료 (2-3)
//					 3-2. 임의의수를 정하고 값의 비교를 원했을때 안내문 보내고 종료 (2-2)
//					 3-3. if 현재 값 == 요구값이면 n팩 값을 반환하고 종료 ()
//		    
		
		
		int user=4;
		int n=1;
		int fac = 1;
		int choose =1;  //요구사항 확인 
		
		System.out.println("팩토리를 이용해서 어떤 값을 얻고 싶으신 건가요");
		System.out.println("n(user가 입력한 임의의수)!의 값을 얻고 싶으시면 1번을 누르세요. ");
		System.out.println("n!의 값과 user값의 비교를 원하시면 2번을 누르세요. ");
		System.out.println("n!의 값과 user값이 더 크거나 작기를 원하시면 3번을 누르세요. ");
	
		if(choose==1) {
			if(user%1==0) {
				for (;n<=user;n++) {

					fac = fac*n ;
					System.out.println(n);
					
				} //for문 
				System.out.println((n-1)+ "! = " + fac);
			} else {
				System.out.println("송구합니다. 정수를 입력해주세요."); 
			} //inner if문 
			
		} else {
			System.out.println("과제 내용에 없던 내용입니다.");
		} //if 문 ```


좋은 웹페이지 즐겨찾기