728x90

 

 

제어문(control flow statement)

프로그램의 수행 흐름을 바꾸는 역할

1.조건문

2.반복문

3.분기문

 

 

1.조건문

조건에 따라 다른 문장이 수행되도록 해줌

1)if

2)switch

 

if문을 주로 쓰고,

switch문은 처리해야 하는 경우의 수가 많을 때는 switch문이 유리

 

1)if문

if (조건식) {  // 조건식은 논리값(true/false)
		수행문장;
}

--> 조건식의 결과가 true면 안에 있는 문장 실행
if(조건식) {
		수행문장;
} else {
		수행문장;
}
--> 조건식의 결과가 true면, 안에 있는 문장 실행
--> 조건식의 결과가 false면, else 안에 있는 문장 실행

if else문은 조건이 2가지 일 때만 사용

3가지 이상이면 if, else if, else를 사용

 

else if

if(조건식) {
		수행문장;
} else if(조건식) {
		수행문장;
} else {
		수행문장;
}

if문은 처음에 반드시 와야함

else if는 여러 개일 수 있음

else문은 없을 수 있음

 

if문 하나에서 순차적으로 false되면 다음 조건으로 넘어가다가 true가 되면 이후 조건은 수행x

  -  if문끼리는 true라도 연속 동작함

ex)

if(month == 1 || month == 2 || month == 12) {
		season = "겨울";
		if(temperature <= -15) {
				season += "한파 경보";
		} else if(temperature <= -12) {
				season += "한파 주의보";
		}
} else if (month >= 3 && month <=5) {
				season = "봄";
} else if (month >= 6 && month <=8) {
			  season = "여름";
				if(temperature >= 35) {
						season += "폭염 경보";
				} else if(temperature >= 33) {
									season += "폭염 주의보";
				}
} else if(month >= 9 && month <= 11) {
				season = "가을";
} else { 
				season = "해당하는 계절이 없습니다.";
}

 

 

2)switch

형태

switch (조건식) {
case 값1 :
case 값2 :
case 값3 : 
default : 
}

조건식 : 정수, 문자, 문자열

조건식 정수,문자,문자열만 들어갈 수 있으므로, case의 값도 정수, 문자, 문자열 중에서 들어갈 수 있으며 해당 값이 일치하면 콜론(:)의 오른쪽 실제 실행되는 코드를 입력하면 된다

switch() ()안에 변수 값과 일치한 case 값을 true/false 논리로 해서 true되면 해당 case 안에 코드가 실행됨

어디에도 해당되지 않는 때 처리하는 것이 default ( = else)

 

if문과 switch문 차이

if문은 true가 되면 해당 조건의 코드 발동하고,

switch는 true된 코드부터 아래까지 전부 실행

if는 true가 되면 해당 코드만 실행하고 빠짐

switch는 각 case 안에 break 코드를 넣어줌

 

중첩 여부

switch끼리 중첩 가능

if switch 둘이 섞어서도 둘을 중첩해서도 모두 가능

 

예시 코드

(switch문은 주로 주문 메뉴에서 자주 쓰임)

public void method4() {
		
		// 메뉴 자판기
		// 번호지정하면 실행되는 로직
		Scanner sc = new Scanner(System.in);
		System.out.println("===메뉴===");
		System.out.println("1.간단 계산기");
		System.out.println("2.짝/홀수 판단");
		System.out.println("3.n월의 마지막 날");
		System.out.print("메뉴 번호 : ");
		int menuNum = sc. nextInt();
		
		switch(menuNum) {
		case 1:
			System.out.println("간단 계산기입니다");
			break;
		case 2:
			System.out.println("짝홀수 판단입니다.");
			break;
		case 3:
			System.out.println("n월의 마지막 날입니다.");
		// 1-3외의 다른 수가 입력된다면?
		// 아무런 반응x -> default로 해결
		default:
			System.out.println("잘못된 메뉴 번호입니다");
		}
	}

 

 

728x90
반응형
728x90

조건문과 반복문

 

1. 조건문

a. if문

<button onclick="ifTest();">if버튼</button>
<script>
  // 실습 예제
// 당신의 성별은 무엇입니까? 라고 묻는 알람창이 뜨고 그 알람창에는 값을 입력할 수 있는 필드가 있음
// 필드에는 '남자/여자'라는 값이 자동으로 들어가 있는 상태
// 남자라고 입력하면 "XY입니다", 여자라고 입력하면 "XX입니다", 둘다 아니면 "잘못 입력했습니다"
// 라는 문구가 알람창으로 뜨게 하기
 function ifTest(){  
    var gender = prompt('당신의 성별은 무엇입니까?','남자/여자');
    
        if(gender == '남자'){
            console.log("XY입니다")
        }else if(gender == '여자'){     
            console.log("XX입니다")
        }else{
            console.log("잘못 입력했습니다")
        }
// 당신의 성별은 무엇입니까? 라고 묻는 알람창이 뜨고 그 알람창에는 값을 입력할 수 있는 필드가 있음
// 필드에는 '남자/여자'라는 값이 자동으로 들어가 있는 상태  
//    -> var gender = prompt('당신의 성별은 무엇입니까?', '남자/여자');
   }
</script>

 

b. switch

<button onclick="switchTest();">switch문</button>
    <script>
        function switchTest(){ 
            var month = Number(prompt("현재는 몇 훨입니까?")); // prompt가 문자열 반환이라 문자를 숫자로 바꿔줘야함.
            console.log(typeof(month));  // 디버깅용 타입확인. 숫자인 것 같은데 비교가 안되는 상황이 자주 발생하니
            var day;
            switch(month){
                case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                    day = 31; break;
                case 4: case 6: case 9: case 11:
                    day = 30; break;
                case 2:
                    day = 28;
                }
                alert(month + "월은 " + day + "일까지입니다.");
            }
            
    // '현재는 몇 휠입니까? '라고 묻는 알람창이 뜨고 그 알람창에는 값을 입력할 수 있는 필드가 있음
    // 입력을 하고 나면 'M월은 N일까지입니다' 라는 결과가 알람창에 뜨게 하기

    </script>

 

2. 반복문

a. for문

<h4>for</h4>
  <button onclick="forTest();">for문</button>
  <script>
      function forTest(){
          var result = '';
          for(var i = 1; i<=10; i++){
              result += i + ' ';
          }
          alert(result);  // 1 2 3 4 5 6 7 8 9 10출력
      }
  </script>

 

b. while문

<h4>while문</h4>
    <button onclick="whileTest();">while문</button>
    <script>
		function whileTest(){
			var result = '';
			var i = 1; 
			while(i<=10){
				result += i + ' ';
				i++;
			}
			alert(result);   // 1 2 3 4 5 6 7 8 9 10
		}
    </script>

 

c. for in문

객체의 프로퍼티 키 열거 전용

자바 foreach랑 비슷

for in문에서 배열을 가지고 사용할 때, 앞에 있는 변수(i)에 담기는 값은 배열의 인덱스가 담김 for in문에서 객체를 가지고 사용할 때, 앞에 있는 변수(i)에 담기는 값은 객체의 키가 담기게 됨

<button onclick="forInTest();">for in문</button>    <!-- 자바 foreach랑 비슷함 -->
    <script>
        function forInTest(){
            var result = '';
            var array = ['A', 'B', 'C', 'D', 'E'];

            for(var i in array){    // i의 디폴트값 0
                // for in문에서 배열을 가지고 사용할 때, 앞에 있는 변수(i)에 담기는 값은 배열의 인덱스가 담김
                console.log(i);     // 01234 <- 배열의 인덱스
                result += array[i] + ' ';
            }
            alert(result);          // A B C D E 

           /* 
            // 자바에서 이런식으로 사용
            for(Emp e : list){
                System.out.prinln(e);   
            }

            */
        }
    </script>

 

forEach()문

배열 순회 전용 메서드

forEach(function(item, index, arr){ ... })

item : 배열의 각 대상을 의미

index : 배열의 순서를 의미 (현재 몇번째 반복문이 돌고있는지)

arr : forEach 반복문에 사용되는 배열을 의미

 

자바스크립트 반복문 종류

1. for : 고전적인 for문

2. for in : 객체의 프로퍼티 키 열거 전용

3. for of : 이터러블 순회 전용

4. forEach(): 배열 순회 전용 메서드

5. while : 고전적인 while문

6. do while : 고전적인 do...while문

7. Object 객체 메서드: 객체 순회 전용

8. Array.prototye 메서드 : 배열 전용

https://curryyou.tistory.com/202

728x90
반응형
728x90

 

깃허브 브랜치(branch) 생성 & 변경 

깃허브 브랜치(branch) 생성하고 생성한 브랜치로 변경해보기

 

git help 누르면 각종 명령어와 도움말들을 얻을 수 있다

 

1.브랜치 생성

git branch 브랜치명

create라는 이름을 가진 브랜치를 master 브랜치에 세팅했다고 한다

 

 

2.브랜치 변경

create라는 이름을 가진 branch에서 master 브랜치로 옮겨갔다

빨간줄을 보면 커맨드 입력 후 create -> master로 바뀐 것을 볼 수 있다

명령어는 git switch 브랜치명

 

 

 

 

728x90
반응형
728x90

 

 

db에서 답변여부에 대한 상태를 Y or N 둘 중 하나로 받아왔다

이를 JSTL를 써서 답변대기중이나 답변완료로 바꿀려고 <c:choose>를 사용했는데

코드 내용이 오타나 잘못된게 없는 것 같은데 작동을 안했다

왜일까?

<table>
    <tr class="tbodyContent">
        <td class="tbodyTd1" width="65">${ b.qnaNo } </td>
        <td class="tbodyTd2" style="text-align:left">${ b.qnaTitle }</td>
        <td class="tbodyTd4" width="100">${ b.qnaCreateDate }</td>
        <td class="tbodyTd5" width="50"> ${b.qnaStatus} 
       		<c:choose>
       			<c:when test="$ { b.qnaStatus eq 'Y' }"><span>답변 완료</span></c:when>
       			<c:when test=" ${ b.qnaStatus eq 'N' }"><span>답변 대기중</span></c:when>
       		</c:choose>
        </td>
    </tr>   
</table>

 

test=” ${ }” 여기서 $ 앞에 공백이 있었기 때문

728x90
반응형

+ Recent posts