[TIL] 구디아카데미 5일차: String타입, if문

Mijin·2023년 4월 11일
0

TIL

목록 보기
3/21
post-thumbnail

구디아카데미에서의 5일차가 지났다.
오늘은 자바의 데이터 타입 중 참조타입 String과 if를 이용한 조건문을 연습하였다.

✅String타입을 int타입으로 변경하기

<%
	// 요청값(parameter value) 처리
	String x = request.getParameter("x");
	String y = request.getParameter("y");
	String z = x+y;
	
	int a = Integer.parseInt(x);
	int b = Integer.parseInt(y);
	int c = a+b;
%>

✅if문

코드는 위에서 아래로 순차적으로 실행되는데 제어문을 이용하여 조건분기하거나 반복하는 코드를 작성할 수 있다.
조건문: if, switch
반복문: for, while

<%
	/*
	if(bool값) { **bool값: "true" or "false"
		
	}

	if(){
		
	}
	else {
		
	}
	
	if() {
		
	} else if() {
		
	} else if() {
		
	}
	
	if() {
		
	} else if() {
		
	} else if() {
		
	} else {
		
	}
	*/
	
	int x = 7;
	int last = 7%2;
	if(last == 0) {
		out.print("짝수");
	} else {
		out.print("홀수");
	}
%>

⌨ 나이와 성별

<%
	// 요청값 처리
	String name = request.getParameter("name");
	
	int currentYear = 2023;
	
	String year = request.getParameter("year");
	int numYear = Integer.parseInt(year);
	
	// 한번에 구현하는것도 가능: 변수를 새롭게 지정할 필요가 없다.
	int sn7 = Integer.parseInt(request.getParameter("sn7"));
	
	int age = currentYear - numYear;
	String gender = null;
	if(sn7 % 2 == 0) {
		gender = "여";
	} else {
		gender = "남";
	}
%>
	<!-- 출력내용 -->
	<div><%=name%>님(<%=age%>)은 <%=gender%>입니다</div>

⌨ 주사위 던지기

<%
	int d1 = 0; // 1~6, 0은 초기값, 참조타입은 null로 초기화
	int d2 = 0; // 1~6
	
    //double d = Math.random(); d는 0.000...~0.999...의 실수이다
	d1 = (int)(Math.random() * 6)+1;
	d2 = (int)(Math.random() * 6)+1;
	
	int sum = d1+d2;
%>
	<div>
		<%
			if(d1 == 1) {
		%>
				<img src="./img/one.jpg"  width="200" height="200">
		<%		
			} else if(d1 == 2) {
		%>
				<img src="./img/two.jpg" width="200" height="200">
		<%		
			} else if(d1 == 3) {
		%>
				<img src="./img/three.jpg" width="200" height="200">
		<%		
			} else if(d1 == 4) {
		%>
				<img src="./img/four.jpg" width="200" height="200">
		<%				
			} else if(d1 == 5) {
		%>
				<img src="./img/five.jpg" width="200" height="200">
		<%		
			} else {
		%>
				<img src="./img/six.jpg" width="200" height="200">
		<%
			}
		%>
		
		<%
			// 2번째 주사위
			if(d2 == 1) {
		%>
				<img src="./img/one.jpg"  width="200" height="200">
		<%		
			} else if(d2 == 2) {
		%>
				<img src="./img/two.jpg" width="200" height="200">
		<%		
			} else if(d2 == 3) {
		%>
				<img src="./img/three.jpg" width="200" height="200">
		<%		
			} else if(d2 == 4) {
		%>
				<img src="./img/four.jpg" width="200" height="200">
		<%				
			} else if(d2 == 5) {
		%>
				<img src="./img/five.jpg" width="200" height="200">
		<%		
			} else {
		%>
				<img src="./img/six.jpg" width="200" height="200">
		<%
			}
		%>
        <!-- CSS를 이용한 이미지크기 방법도 생각해보기 --->
	</div>
	<div>주사위 결과 : <%=sum%></div>

⌨ 객관식 온라인 시험의 정오표와 점수

<%
	String name = request.getParameter("name");
	
    //작성된 답안 변수
	int question1 = Integer.parseInt(request.getParameter("one"));
	int question2 = Integer.parseInt(request.getParameter("two"));
	int question3 = Integer.parseInt(request.getParameter("three"));
	
	//점수 변수
	int answer1 = 0; 
	int answer2 = 0;
	int answer3 = 0;
	
	//정오표 변수
	String c1 = null;
	String c2 = null;
	String c3 = null;
	
	//정오표
    /*각 문제의 답 변수(int correct)를 만들어 
    question1==correct1 이라고 하는 것보다 
    변수의 수를 줄일 수 있다.*/
	if (question1==4) { 
		answer1=10;
		c1="O";
	} else {
		c1="X";
	}
	if (question2==4) {
		answer2=10;
		c2="O";
	} else {
		c2="X";
	}
	if (question3==2) {
		answer3=10;
		c3="O";
	} else {
		c3="X";
	}
	
    //접수합계
	int sum = answer1+answer2+answer3;
%>

❗ 더 간단한 방법

	//작성된 답안 변수
	int question1 = Integer.parseInt(request.getParameter("one"));
	int question2 = Integer.parseInt(request.getParameter("two"));
	int question3 = Integer.parseInt(request.getParameter("three"));
	
	//점수 변수
	int = score;
	
	//정오표 변수
	String c1 = null;
	String c2 = null;
	String c3 = null;
	
	//정오표
	if (question1==4) {
		score=score+1; //위의 방법보다 변수의 수가 줄어든다
		c1="O";
	} else {
		c1="X";
	}
	if (question2==4) {
		score=score+1;
		c2="O";
	} else {
		c2="X";
	}
	if (question3==2) {
		score=score+1;
		c3="O";
	} else {
		c3="X";
	}

⌨ 가위바위보

<%
	request.setCharacterEncoding("utf8"); //한글 값을 받을때 필수적으로 작성한다
	
	// 사용자 가위바위보
	String userRsp = request.getParameter("userRsp"); // "가위" or "바위" or "보"
	
	// 컴퓨터 가위바위보
	int r = (int)(Math.random()*3); // 0,1,2
	
	String comRsp = null;
	if(r==0) {
		comRsp = "가위";
	} else if(r==1) {
		comRsp= "바위";
	} else {
		comRsp= "보";
	}
	
	// 승패
	String result = null;
	if(userRsp.equals(comRsp)) {
		result = "비겼다";
	} else if((userRsp.equals("가위")&&comRsp.equals("보")) || (userRsp.equals("바위")&&comRsp.equals("보")) || (userRsp.equals("보")&&comRsp.equals("바위"))) {
		result = "이겼다";
	} else {
		result = "졌다";
	}
	
	out.print(result);
%>
<!-- 출력 페이지에 이미지를 추가하는 방법 -->
<img src="./img/<%=userRsp%>.jpg">

<!-- 다시시작버튼 -->
<form action="./userRsp.html">
	<input type="submit" value="다시시작">
</form>

💪 느낀점

  • 결과문을 먼저 분석한 후 어떻게 코드를 작성할 것인지 생각을 정리한 후에 코드작성 시작하기.
  • 작성한 코드는 코드리뷰 후에 과제 제출하기.
  • 주석을 이용하여 모르는 부분이나 부족한 부분은 설명을 꼭 남기기
  • 깔끔한 코드작성!!!
profile
개발자로 가는 길 🏃‍♀️

0개의 댓글