개발자(프로그래밍!!!)/Java

3. Java (선택과 반복 (if, switch-case, while, for) )

건강전파사 2019. 3. 28. 21:18
반응형
SMALL

1.If 문(If-else문)

사실 if-else문이라는 것은 없다 if문이 맞는 말이다. if문은 조건문의 결과가 참이라고 하면 그때 if문을 실행을 한다.

else는 짝꿍(가장 가까운) if문의 조건식이 False일때 실행이 된다

public class ifTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int score = 93;
		
		if(score <=90)
			System.out.println("점수가 90점보다 큽니다.");
			System.out.println("냠냠.");
	}
} // 다음과 같이 중괄호가 없이 if문을 수행했을 경우에 if문은 자기 아래의 구문까지만 인식하기 때문에 거짓일 경우에는 "냠냠"이 출력이 된다.
  // 즉, 중괄호를 표시 해주어야 올바른 코딩을 할수 있다.
/**
if-else 문을 사용하여 입력된 성적 분류하기 // 코딩하기 1-4 참조
*/
public class ifTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in); //Scanner라는 타입과 변수 input에 새로운 Scanner를 만들어 주고 표준입력을 받는다(키보드로 입력받음)
		
		int score;  // 내가 사용할 변수를 선언을 한다.
		System.out.println("과제의 점수를 입력하세요 : "); //입력받을 값을 받는다.
		score = input.nextInt(); // 키보드를 통해 받은 값을 정수의 값으로 바꾸어 score 변수에 저장한다.

				if(score >=90) {  		 // 조건을 만들어서  살행 
			System.out.println("A");
		}else if(score >=80){
			System.out.println("B");			
		}else if(score >=70) {
			System.out.println("C");
		}else if(score >=60) {
			System.out.println("D");
		}else {
			System.out.println("바보");
        }
    }
}
 //메모리 상에서 stack에 Scanner input을 생성을 한다. 
 //그리고 그위에  int score라는 변수를 만들어주고 입력받은 값을 저장해준다. 

 

Math.random(); <- 0.000.... ~ 0.9999...까지의 임의에 난수를 생성함.

정수로 가공해서 만들고 싶다. Math.random() 함수앞에 (int)를 붙여 강제형변환을 시켜준다.

    ex) (int)Math.random()*6 --> 0 ~ 5

-> *7을 해서 1~6까지 표현할 수 있을 거라고 생각할 수도 있지만 어떤 값을 곱해도 앞에 정수 값은 0이

     나오기 때문에 코딩을 할때에는 +1을 하여 최초의 값을 1로 표현을 해주어야 한다.

 (int)(Math.random()*6)+1 -> 1 ~ 6 (코딩을 할때 1부터 6까지 표현을 할 수 있다)

      -> 6이라는 값은 정해져 있는 값이 아니고 조건에 따라 바뀔수있다.

 

2. switch-case문

1) 형식

switch(number) // switch 문은 if문과 다르게 조건을 넣는것이 아닌 번호를 넣는다!!!! :0

{case 0:           // 그리고 위의 조건이 OK할 경우에 아래의 case의 번호에 맞는 곳에 들감!

 break;            // 원하는 값만 출력하고자 할때에는 꼭 break를 넣어주어야 한다. !!

                     // 자동차를 타고 가다가 브레이크가 작동을 안하면 계속가는 것과 같은 원리

case 1:

break;

default :          // 모두 부합하는 조건이 없다면 default 값을 출력한다.~~!!

break;

}

 

3. while

1) 형식

          while(조건식)

             { 문장; }

2) 원리 이해

- 반복계수 : 반복문 수행 전 초기화 되고 조건에 영향을 주고 반복구문 안에서 증감되는 변수(아래에서 i)

		int i=1;                          // 1번

          while(i<2) {                      // 2번
        
			System.out.println("정수:"+i);    // 3번
			i++;                              // 4번
                     }                

- 위의 코드에서 while문이 돌아가는 원리는 처음 선언된 int i=0;의 값이 메모리에 저장이된다.

  그 후에 while의 조건문에서 참,거짓을 판단하고 다음라인으로 넘어간다.

값 출력을 하고 값을 증가 시켜주고 메모리에 저장이 된다. 그리고 조건식으로 돌아와 값을 확인을 한다.

- 코드가 돌아가는 순서

i=1 (메모리 저장)-> while(조건) ok!! -> 출력 -> 증감(i=2)(메모리 저장) ->while(조건) False!!->종료

* 마지막에 증감을 하고 나올 것 같지만 조건문을 확인을 하고 나오게 된다.

 

4. for

1) 형식

for(초기화; 조건식; 증감식)

{ 문장; }

        for(int num=3; num<4; num++) //1번 int num=3, 2번 num<5, 3번 num++)
		{
			System.out.println(num); //4번
		}

 

2) 원리 이해

- for문이 돌아가는 원리는 최초에 1번 int num =3 이라는 값이 메모리에 저장되게 된다. 그리고 2번 조건을 확인을 한다. 조건을 확인한 후에는 4번으로 내려가서 값을 출력을 한다. 그리고 올라가서 3번 증감 및 메모리에 저장을 한다. 그리고 2번 조건을 확인하고 4번을 실행하는 방식으로 돌아가게 된다.

  - 1번 int num=3(메모리 저장) -> 2번 조건값(True) -> 4번 (출력) ->

    3번 num = 4(증감)(메모리 저장)-> 2번 조건 값(False)->끝

반응형
LIST