1.  localStorage 객체

 

👾  웹 브라우저에 데이터를 저장하는 객체

👾  localStorage 객체 처럼 웹 브라우저가 제공해주는 기능을 웹 API 라고 부른다.

메소드 설명
localStorage.getItem(키) 저장된 값을 추출. 없으면 'null' 이 반환
localStorage.setItem(키, 값) 값을 저장
localStorage.removeItem(키) 특정 키의 값을 제거
localSorage.clear() 저장된 모든 값을 제거

 


  
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
.hidden {
display: none;
}
</style>
<body>
<form id="login-form"> <!-- input 유효성 검사 작동 위해 form 안에 들어가 있어야 함 -->
<input
required
maxlength="15"
type="text"
placeholder="What is your name?" />
<input type="submit" value="Log In">
</form>
<h1 id="greeting" class="hidden"></h1>
<script src="app.js"></script>
</body>
</html>

  
const loginForm = document.querySelector('#login-form');
const loginInput = document.querySelector('#login-form input');
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden";
const USERNAME_KYE = 'userName';
function onLoginSubmit(event) { // 방금 일어난 event에 대한 정보를 지닌 argument를 채워넣음
// form을 submit 하면 브라우저는 기본적으로 페이지를 새로고침 함
event.preventDefault(); // 브라우저 기본 동작 막음 (새로고침 x)
const userName = loginInput.value; // 입력받은 값 변수에 저장
loginForm.classList.add(HIDDEN_CLASSNAME); // 입력받은 후 폼 형태 숨기기
localStorage.setItem(USERNAME_KYE, userName); // (키,값) 형태로 저장
paintGreetings(userName); // h1 태그 안의 텍스트 불러옴
}
function paintGreetings (userName) { // h1 태그 안의 텍스트 불러오는 함수
greeting.innerText = `Hello ${userName}`;
greeting.classList.remove(HIDDEN_CLASSNAME); // 인사말 숨기는 속성 제거
}
const savedUsername = localStorage.getItem(USERNAME_KYE);
if (savedUsername === null) { // 이름이 저장되어 있지 않을 떄
loginForm.classList.remove(HIDDEN_CLASSNAME); // 로그인 폼 숨기는 속성 제거
loginForm.addEventListener('submit', onLoginSubmit);
} else { // 이름이 저장되어 있을 떄
paintGreetings(savedUsername);
}

 

 

웹 API 관련 참고 사이트

https://developer.mozilla.org/ko/docs/Web/API 

 

Web API | MDN

웹 코드를 작성한다면 많은 API를 사용할 수 있습니다. 아래 목록은 웹 앱이나 웹 사이트를 만들 때 사용할 수 있는 모든 인터페이스(객체의 유형)입니다.

developer.mozilla.org

 

 

 

[ 내용 참고 : 책 '혼자 공부하는 자바스크립트' 및 노마드 코더 강의 ]


1.  회원가입 예제

body 태그

  
<body>
<div id="container">
<h1>회원 가입</h1>
<form action="#" id="register">
<ul id="user-info">
<li>
<label for="user-id" class="field">아이디</label>
<input type="text" name="user-id" id="user-id" placeholder="4~15자리로 입력" required>
</li>
<li>
<label for="email" class="field">이메일</label>
<input type="email" name="email" id="email" required>
</li>
<li>
<label for="user-pw1" class="field">비밀번호</label>
<input type="password" name="user-pw1" id="user-pw1" placeholder="8자리 이상" required>
<span class="trans">문자로 변환</span>
</li>
<li>
<label for="user-pw2" class="field">비밀번호 확인</label>
<input type="password" name="user-pw2" id="user-pw2" required>
</li>
<li>
<label class="field">메일링 수신</label>
<label class="r"><input type="radio" value="yes" name="mailing"></label>
<label class="r"><input type="radio" value="no" name="mailing">아니오</label>
</li>
</ul>
<ul id="buttons">
<li>
<input type="button" class="btn btnBlack" value="가입하기">
</li>
<li>
<input type="reset" class="btn btnGray" value="취소">
</li>
</ul>
</form>
</div>
</body>

 

stylesheet

  
#container{
width:600px;
margin:0 auto;
}
ul {
list-style:none;
}
ul li {
clear:both;
}
.field {
float:left;
width:100px;
font-weight:bold;
font-size:0.9em;
line-height: 55px;
text-align:right;
margin-right:15px;
}
input[type="text"], input[type="password"], input[type="email"] {
float:left;
width:350px;
height:35px;
border:1px solid #aaa;
border-radius:5px;
padding:5px;
margin:10px 0;
float:left;
}
.r {
line-height:55px;
}
#buttons > li {
display:inline-block;
}
input[type="button"], input[type="reset"] {
width:250px;
height:50px;
margin-right:10px;
border:1px solid #ccc;
background:#eee;
font-size:0.9em;
}

 


 

script 코드 작성

 회원가입 페이지 입력 값 검증하기
         1. [가입하기] 버튼을 클릭하면 아이디 글자 수 확인하기

         2. 비밀번호 확인하기
           1) 비밀번호 필드에 입력한 내용의 글자 수가 8자리 이상인지 확인
           2) 비밀번호 확인 필드에 입력한 값이 비밀번호의 필드 값과 같은지 확인

         3. 비밀번호 패스워드 변환 <-> 문자 변환

  
<head>
<link rel="stylesheet" href="css/register.css">
<script>
document.addEventListener('DOMContentLoaded', function () {
const frmRegister = document.getElementById('register'); // 폼태그
const btnSubmit = document.querySelector('.btnBlack'); // 가입 버튼
const userName = document.getElementById('user-id'); // id태그
const pw1 = document.querySelector('#user-pw1'); // 비밀번호1 필드
const pw2 = document.querySelector('#user-pw2'); // 비밀번호2 필드
btnSubmit.addEventListener('click', function () {
// 가입하기 버튼 클릭했을 때
if (userName.value.length > 15 || userName.value.length < 4) {
alert('4~15자리로 입력하세요.'); // 오류 메시지 출력
/*
select() : 사용자가 기존에 입력한 값을 선택
focus() : 사용자가 기존에 입력한 값을 지우고 새로운 값을 입력하도록 텍스트 필드에 커서를 가져다 놓음.
*/
userName.select();
return;
}
frmRegister.submit();
});
pw1.addEventListener('change', function () {
// 비번1 입력했을 때 오류 확인
if (pw1.value.length < 8) {
alert('비밀번호는 8자리 이상이어야 합니다.'); // 오류 메시지 표시
pw1.value='';
pw1.focus();
}
});
pw2.addEventListener('change', function () {
// 비번 2 입력했을 때 오류 확인
if (pw1.value !== pw2.value) {
alert('암호가 다릅니다. 다시 입력하세요.'); // 오류 메시지 표시
pw2.value = '';
pw2.focus();
}
});
const btnTrans = document.querySelector('span.trans');
// 비밀번호 문자열 변환 태그
btnTrans.addEventListener('click', function (e) {
if (pw1.getAttribute('type') === 'password') {
pw1.setAttribute('type', 'text');
e.currentTarget.textContent = '패스워드로 변환';
} else {
pw1.setAttribute('type', 'password');
e.currentTarget.textContent = '문자로 변환';
}
});
});
</script>
</head>

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]


1.  주문서

 

body 태그

  
<body>
<!-- 배송 정보 자동으로 입력하기 1 -->
<div id="container">
<form name="order">
<fieldset>
<legend> 주문 정보</legend>
<ul>
<li>
<label class="field" for="billingName">이름 : </label>
<input type="text" class="input-box" id="billingName" name="billingName">
</li>
<li>
<label class="field" for="billingTel">연락처 : </label>
<input type="text" class="input-box" id="billingTel" name="billingTel">
</li>
<li>
<label class="field" for="billingAddr">주소 : </label>
<input type="text" class="input-box" id="billingAddr" name="billingAddr">
</li>
</ul>
</fieldset>
</form>
<form name="shipping">
<fieldset>
<legend> 배송 정보</legend>
<ul>
<li>
<input type="checkbox" id="shippingInfo" name="shippingInfo">
<label class="check">주문 정보와 배송 정보가 같습니다</label>
</li>
<li>
<label class="field" for="shippingName">이름 : </label>
<input type="text" class="input-box" id="shippingName" name="shippingName">
</li>
<li>
<label class="field" for="shippingTel">연락처 : </label>
<input type="text" class="input-box" id="shippingTel" name="shippingTel">
</li>
<li>
<label class="field" for="shippingAddr">주소 : </label>
<input type="text" class="input-box" id="shippingAddr" name="shippingAddr">
</li>
</ul>
</fieldset>
</form>
<button type="submit" class="order">결제하기</button>
</div>
</body>

 

order.css

  
* {
margin:0;
padding:0;
box-sizing: border-box;
}
ul {
list-style: none;
}
legend {
font-size:1.2em;
font-weight:bold;
margin-left:20px;
}
form {
width:520px;
height:auto;
padding-left:10px;
margin:50px auto;
}
fieldset {
border:1px solid #c0c0c0;
padding:30px 20px 30px 30px;
margin-bottom:35px;
}
.field {
float:left;
width:60px;
font-weight:bold;
font-size:0.9em;
line-height: 55px;
text-align:right;
margin-right:15px;
}
.input-box {
width:350px;
height:35px;
border:1px solid #aaa;
border-radius:5px;
padding:5px;
margin:10px 0;
float:left;
}
.order {
width:100%;
padding:20px;
border:1px solid #aaa;
background:#e9e9e9;
font-size:1em;
font-weight:bold;
}

 

stylesheet와 body 요소만 적용했을 때


'주문 정보와 배송 정보가 같습니다' 클릭 시 주문 정보 가지고 오고, 클릭 해제시 정보 지우는 코드

  
<head>
<link rel="stylesheet" href="css/order.css">
<script>
document.addEventListener('DOMContentLoaded', function () {
const check = document.querySelector('#shippingInfo');
// 체크박스의 id는 shippingInfo
check.addEventListener('click', function () {
// check 요소에 click 이벤트가 발생했을 때 실행할 함수
if (this.checked) { // 체크 되었을 때
document.querySelector('#shippingName').value = document.getElementById('billingName').value;
document.querySelector('#shippingTel').value = document.getElementById('billingTel').value;
document.querySelector('#shippingAddr').value = document.getElementById('billingAddr').value;
} else { // 체크 해제되었을 때 배송정보 지움
document.querySelector('#shippingName').value = "";
document.querySelector('#shippingTel').value = "";
document.querySelector('#shippingAddr').value = "";
}
});
});
</script>
</head>

 


💡  폼 요소 접근 방법 3가지 

    1. id 값이나 class 값을 사용해 폼 요소에 접근하기
        👾  id 값이나 class 값을 사용해 폼 요소에 접근하는 방법은 DOM의 다른 요소에 접근하는 것과 같음
        👾  querySelector() 함수나 querySelectorAll() 함수를 사용
        👾  텍스트 필드에 있는 값을 가져오기 위해서는 텍스트 필드에 접근하는 소스 뒤에 value 속성을 붙임

  
console.log(document.getElementById('billingName').value)
console.log(document.querySelector('[name=billingName]').value);

    2. name 값을 사용해 폼 요소에 접근하기
       👾  폼 요소에 id나 class 속성이 없고 name 속성만 있는 경우 name 식별자를 사용해 폼 요소에 접근
       👾  이 방법을 사용하려면 <form> 태그에 name 속성이 지정되어 있어야 하고,
             <form> 태그안에 포함된 폼 요소에도 name 속성이 있어야
       👾  폼 안에 있는 텍스트 필드에 접근하려면 <form>의 name 값과 텍스트 필드의 name 값을 사용
       👾  submit시에 input의 name은 서버로 전송. 하지만 form의 name은 서버로 전송되지 않음

  
console.log(document.order.billingName.value);

    3. 폼 배열을 사용해 폼 요소에 접근하기
        👾  document의 속성 중 forms 속성은 문서 안에 있는 <form> 태그를 모두 가져와 배열 형태로 반환
        👾  이 방법은 폼 요소에 id나 class 속성도 없고 name 속성도 없을 때 유용
        👾  <form> 태그 안에 포함된 요소에 접근하려면 elements 속성을 사용
                 ➡️  해당 폼 안에 있는 모든 폼 요소를 가져오는 속성, 인덱스 번호로 접근

  
console.log(document.forms[0].elements[1].value);

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]


1.  for 반복문

🐝  for 다음의 괄호 (()) 안에 반복할 범위를 지정하면 for 블록의 코드가 지정한 횟수만큼 반복해서 동작

for (반복할 범위) {    실행 코드    }

 



1) for in .. (온점 2개) : 일반적인 형태의 for 반복문


  🍯  시작값과 종료값으로 지정한 숫자 범위만큼 코드를 반복하는 일반적인 방법
  🍯  in을 사용해서 반복하는 범위의 숫자를 변수에 담아두고 사용

for (변수 in 시작값..종료값) {    실행 코드    }  

  
fun main() {
// 1부터 10까지 열 번 반복하면서 그 숫자를 변수 index에 가장 먼저 저장하고, for 블록의 코드를 실행
// 첫 번째 반복에서는 변수 index에 '1'이 저장되고, 두 번째 반복에서는 index에 '2'가 저장
for (index in 1..10) {
println("현재 숫자는 ${index}")
}
}
/*
현재 숫자는 1
현재 숫자는 2
현재 숫자는 3
현재 숫자는 4
현재 숫자는 5
현재 숫자는 6
현재 숫자는 7
현재 숫자는 8
현재 숫자는 9
현재 숫자는 10
*/


2) until : 마지막 숫자 제외하기

 

  🍯  시작값과 종료값 사이의 .. 대신에 until을 사용하면 '종료값 이전'까지만 반복

  🍯  배열의 index가 항상 0부터 시작하기 때문에 배열의 인덱스를 사용하여 처리하는 코드에서 사용
         ➡️ 배열의 크기는 항상 '마지막 인덱스 + 1의 값'
         ➡️ 반복을 할 때 배열의 크기 바로 전까지만 반복

for (변수 in 시작값 until 종료값) {    실행 코드    }

  
fun main() {
val array: Array<String> = arrayOf("JAN", "FEB", "MAR", "APR", "MAY", "JUN")
for (index in 0 until array.size) {
println("현재 월은 ${array[index]}입니다.")
}
}
/*
현재 월은 JAN입니다.
현재 월은 FEB입니다.
현재 월은 MAR입니다.
현재 월은 APR입니다.
현재 월은 MAY입니다.
현재 월은 JUN입니다.
*/


 3) step : 건너뛰기


  🍯  1부터 100까지 반복하면서 3의 배수만 사용하고 싶을 때와 같은 상황에 사용
  🍯  step을 사용하면 for 문의 블록을 step 수만큼 건너뛰어서 실행

for (변수 in 시작값..종료값 step 3) {    실행 코드    }

  
fun main() {
for (index in 0..100 step 3) {
println("현재 숫자는 ${index}")
}
}
/*
현재 숫자는 0
현재 숫자는 3
현재 숫자는 6
...
현재 숫자는 93
현재 숫자는 96
현재 숫자는 99
*/

 


4) downTo : 감소시키기


  🍯  .. 대신 downTo를 사용하면 큰 수에서 작은 수로 감소시키면서 실행할 수 있음


  
fun main() {
for (index in 10 downTo 0) { println("현재 숫자는 ${index}") }
// 증가할 때와 같이 step을 사용할 수도 있음
for (index in 10 downTo 0 step 3) {
println("건너뛰면서 감소시키기: ${index}")
}
}
/*
현재 숫자는 10
현재 숫자는 9
현재 숫자는 8
...
현재 숫자는 2
현재 숫자는 1
현재 숫자는 0
건너뛰면서 감소시키기: 10
건너뛰면서 감소시키기: 7
건너뛰면서 감소시키기: 4
건너뛰면서 감소시키기: 1
*/

 


5) 배열, 컬렉션에 들어 있는 엘리먼트 반복하기


  🍯  배열이나 컬렉션을 엘리먼트의 개수만큼 반복하면서 사용

  🍯  인덱스를 사용하는 방법보다 더 편하고 가독성이 좋음

for (변수 in 배열 또는 컬렉션) {    실행 코드    }    

 


  
fun main() {
val arrayMonth = arrayOf("JAN", "FEB", "MAR", "APR", "MAY", "JUN")
for (month in arrayMonth) {
println("현재 월은 ${month}입니다.")
}
// withIndex() 함수를 이용하면 요소의 인덱스도 함께 가져올 수 있음
val students = arrayOf("John", "Peter", "Jane")
for ((index, name) in students.withIndex()) {
println("Index: $index, Name: $name")
// Index: 0, Name: John
// Index: 1, Name: Peter
// Index: 2, Name: Jane
}
}

 


응용 예제

  
fun main() {
/*
2개의 주사위를 던지는 게임이 있다고 가정하자.
중첩 for문을 이용하여 2개의 주사위의 합이 6이 되는 경우를 출력하는 코드 작성.
(1, 5)
(2, 4)
(3, 3)
(4, 2)
(5, 1)
*/
for (i in 1..6) {
for (j in 6 downTo 1) {
if (i+j == 6) {
println("(${i}, ${j})")
}
}
}
}

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]


1.  조건문 when

🐰  다른 언어의 switch문은 if문의 연산식에서 사용되는 비교 연산자 '==' 만 사용해서 같은 값인지를 비교
🐰  코틀린을 제외한 거의 모든 프로그래밍 언어에서는 switch라는 이름으로 사용되며 선택문이라고 불리기도 함
🐰  코틀린의 when문은 다른 언어와는 다르게 같은 값뿐만 아니라 범위 값도 처리할 수 있고 사용 방법도 더 많음
       ➡️  특정 값을 선택할 수 있는 switch의 사용법에 if문의 범위 비교 기능이 더해진 if문의 확장판



1) 일반적인 형태의 when 사용하기


    ✏️  when 다음에 괄호 (()) 를 작성하고 괄호 안에는 주로 비교 대상 파라미터로 사용할 변수명을 입력
    ✏️  if에서처럼 괄호 다음에 중괄호 ({})를 사용해서 when 블록을 구분하고 블록 내부에서 비교할 값은

          화살표 연산자 Arrow Operator (->)를 사용해서 선택

when (파라미터) {
    비교값 -> {
            변수값이 비교값과 같다면 이 영역이 실행
     }
 }
    *  switch문과 비교하면 값을 비교하는 줄 앞의 case가 없어지고, 비교값 다음의 콜론이 화살표 연산자(->)로 대체
when (파라미터) {
    비교값1 -> {
            변수값이 비교값1과 같다면 이 영역이 실행.
    }
    비교값2 -> {
            변수값이 비교값1과 같다면 이 영역이 실행.
    }
    else -> {
            변수값이 앞에서 비교한 값들과 다르면 이 영역이 실행
    }
}

  
fun main() {
val now = 10
when(now) {
8 -> {
println("현재 시간은 8시 입니다.")
}
9 -> {
println("현재 시간은 9시 입니다.")
}
else -> { // 위의 조건에 맞지 않으면 else 다음 코드가 실행
println("현재 시간은 9시가 아닙니다.")
}
}
}


2) 콤마로 구분해서 when 사용하기


  ✏️  특정 값을 비교하는 데 결과 처리가 동일하다면 콤마(,)로 구분해서 한 번에 비교할 수 있음


  
fun main() {
val time = 9
when (time) {
8, 9 -> {
println("현재 시간은 8시 또는 9시입니다.")
}
else -> {
println("현재 시간은 9시가 아닙니다.")
}
}
}


3) 범위 값을 비교하기


  ✏️  in을 사용해서 범위 값을 비교할 수 있음


  
fun main() {
val ageOfMichael = 19
when (ageOfMichael) {
in 10..19 -> {
println("마이클은 10대 입니다.")
}
!in 10..19 -> {
println("마이클은 10대가 아닙니다.")
}
else -> {
println("마이클의 나이를 알 수 없습니다.")
}
}
}


 4) 파라미터 없는 when 사용하기


  ✏️  when 다음에 오는 괄호를 생략하고 마치 if문처럼 사용할 수 있음


  
fun main() {
val currentTime = 6
when {
currentTime == 5 -> {
println("현재 시간은 5시입니다.")
}
currentTime > 5 -> {
println("현재 시간은 5시가 넘었습니다.")
}
else -> {
println("현재 시간은 5시 이전입니다.")
}
}
}

 


응용 예제

  
fun main() {
/*
사용자에게 성적을 입력받아
When을 사용해서 학점을 출력하는 코드를 완성하세요.
입력은 0 ~ 100까지 입력이 됩니다.
* 기준
A: 90 ~ 100
B: 80 ~ 89
C: 70 ~ 79
D: 60 ~ 69
F: 0 ~ 59
예) 성적을 입력하세요 : 90
입력하신 성적은 90점이고, 학점은 A입니다.
*/
print("성적을 입력하세요 : ")
val score = readln().trim().toInt()
val grade = when (score) {
in 90..100 -> {'A'}
in 80..89 -> {'B'}
in 70..79 -> {'C'}
in 60..69 -> {'D'}
else -> {'F'}
}
println("입력하신 성적은 ${score}점이고, 학점은 ${grade}입니다.")
}

 


2.  범위 클래스

🐰  코틀린을 이용하면 특정 범위의 값들을 간편하게 표현할 수 있음
    ⚡️ 범위 클래스로는 IntRange, LongRange, CharRange등이 있음
          예) IntRange 클래스를 사용해 1에서 5까지 숫자의 범위를 생성하는 코드

🐰  값 포함 여부를 확인할 때 '변수명.containts(값)' 사용


  
fun main() {
val numRange: IntRange = 1..5
println(numRange) // 1..5
println(numRange.contains(3)) // true
println(numRange.contains(10)) // false
/*
알파벳의 범위도 마찬가지. CharRange 클래스를 사용
*/
val charRange: CharRange = 'a'..'e'
println(charRange.contains('b')) // true
println(charRange.contains('z')) // false
}

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]


1.  제어문

👩🏻‍💻  제어문 : 코드의 흐름을 조건에 따라 바꿀 수 있음
👩🏻‍💻  제어문에는 크게 조건문에 해당하는 if, when 그리고 반복문에 해당하는 for, while 이 있음


(1)  조건문  if


    ✏️   주어진 조건식의 결과값이 참인지 거짓인지에 따라 코드르 실행할 것인지
           혹은 다른 코드를 실행할 것인지 판단하기 위한 프로그래밍 문법

  1) if문을 사용하기 위한 조건


      -  if문의 조건식에는 비교 연산자(==, <, >)와 논리 연산자(&&, ||)를 사용한 조건식만 사용 가능
      -  조건식의 결과는 Boolean 타입인 true 참과 false 거짓


  2) 기본적인 if문 사용하기

if (조건식) {
        조건식이 참일 경우 실행되는 코드 영역
 } 
    *  코드 블럭 code block. 코드 스코프 code scope : 코드 중간의 여는 중괄호 {로 시작해 닫는 괄호 } 까지

  
fun main() {
var out = 0
var strike = 3
if (strike > 2) {
out = out + 1
}
println("out: $out") // out: 1
}


  3) if~else 문 사용하기

if (조건식) {
        조건식이 참일 경우 실행되는 코드 영역
} else {
        조건식이 거짓일 경우 실행되는 코드 영역
}    

  
fun main() {
var ball = 4
if (ball > 3) {
println("4볼로 출루합니다.") // 4볼로 출루합니다.
} else {
println("타석에서 다음 타구를 기다립니다.")
}
}

 



    4) else if 문

 if (조건식) {
        조건식이 참일 경우 실행되는 코드 영역
 } else if (조건식 2) {
        조건식 1 결과가 거짓이고 조건식 2 결과가 참일 경우 실행되는 코드 영역
} else {
        조건식1, 조건식2 모두 거짓일 경우 실행되는 코드 영역
}


  5) 변수에 직접 if문 사용하기


      -  if문의 조건식 결과를 변수에 대입할 수 있음


  
fun main () {
var a = 5
var b = 3
var bigger = if (a > b) a else b
println("bigger: $bigger") // 5
}


  6) if문의 마지막 값을 반환값으로 사용하기


    -  위의 코드와 같은데 if문의 코드 영역이 여러 줄일 경우에도 마지막 줄을 변수값으로 사용할 수 있음


  
fun main() {
bigger = if (a>b) {
var c = 30
a // 마지막 줄의 a 값이 bigger에 저장
} else {
b
}
println("bigger: $bigger") // 5
/*
다음과 같이 'if문을 활용하여 변수에 값을 할당할 수 있음.'
'값을 할당해야 하므로 반드시 else문이 필요'
*/
val myAge = 20
val isAdult = if (myAge > 20) true else false
println("성인 여부 : $isAdult") // 성인 여부 : false
}

응용 예제

  
fun main() {
/*
사용자에게 성적을 입력받아
if문을 사용해서 학점을 출력하는 코드를 완성하세요.
입력은 0 ~ 100까지 입력이 됩니다.
* 기준
A: 90 ~ 100
B: 80 ~ 89
C: 70 ~ 79
D: 60 ~ 69
F: 0 ~ 59
예) 성적을 입력하세요 : 81
학점 B
*/
print("성적을 입력하세요 : ")
val scanner = Scanner(System.`in`)
val score = readln().toInt()
if (score >= 90) print("학점 A")
else if (score >= 80) print("학점 B")
else if (score >= 70) print("학점 C")
else if (score >= 60) print("학점 D")
else print("학점 F")
}

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]

+ Recent posts