[Kotlin ๊ธฐ์ดˆ] ์ฝ”ํ‹€๋ฆฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• - ๋กœ๊ทธ, ๋ณ€์ˆ˜, ์กฐ๊ฑด๋ฌธ
๋ฐ˜์‘ํ˜•

 

 


 

1 ์ฝ”๋”ฉ ์ค€๋น„ํ•˜๊ธฐ (๋กœ๊ทธ)

 

 

ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

 

 

  • ๋กœ๊ทธ(Log)
    : ์ฝ”๋”ฉ์„ ํ•  ๋•Œ ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์•ฑ ์™ธ๋ถ€์— ์ถœ๋ ฅํ•˜๋Š” ์ •๋ณด
    ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋งค๋ฒˆ ๋””๋ฒ„๊น…ํ•  ํฌ์ธํŠธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋Š” ๋ฐ˜๋ฉด,
    ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ ์„ค์ •์œผ๋กœ ํ•ญ์ƒ ํ•ด๋‹น ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • ๋กœ๊ทธ์บฃ(Logcat)
    : ์ถœ๋ ฅ๋˜๋Š” ๋กœ๊ทธ๋ฅผ ๋ชจ์•„์„œ ๋ณด๋Š” ๋„๊ตฌ
    ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์•ฑ์˜ ๋กœ๊ทธ๋งŒ ๋ณผ ์ˆ˜๋„ ์žˆ๊ณ , ํƒœ๊ทธ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ํ•ด๋‹น ํƒœ๊ทธ๋ฅผ ํ•„ํ„ฐ๋กœ ์‚ฌ์šฉํ•ด์„œ ํŠน์ • ๋กœ๊ทธ๋งŒ ํ™•์ธ ๊ฐ€๋Šฅ
  • ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ๋งŽ์€ ์–‘์˜ ๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋จ
  • ์›ํ•˜๋Š” ๋กœ๊ทธ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์˜ Log ํด๋ž˜์Šค๋ฅผ ์ฝ”๋“œ ์ค‘๊ฐ„์ค‘๊ฐ„์— ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
    --> ์•ฑ์˜ ์‹คํ–‰ ํ๋ฆ„ ํ˜น์€ ๊ฒฐ๊ด๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

 

 

Log ํด๋ž˜์Šค์˜ ๋‹ค์„ฏ๊ฐ€์ง€ ํ•จ์ˆ˜

  • v(verbose)
  • i(information)
  • d(debug)
  • w(warning)
  • e(error)
ํ•จ์ˆ˜ ์˜๋ฏธ ๋‚ด์šฉ
Log.v() verbose ์ƒ์„ธํ•œ ๋กœ๊ทธ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
Log.d() debug ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์ถœ๋ ฅ(๊ฐœ๋ฐœ์ž์šฉ)
Log.i() information ์ •๋ณด์„ฑ์˜ ์ผ๋ฐ˜์ ์ธ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์šฉ
Log.w() warning ์—๋Ÿฌ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ฒฝ๊ณ ์„ฑ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
Log.e() error ์‹ค์ œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ์šฉ๋„

 

 

๋กœ๊ทธ์˜ ํ™œ์šฉ

์—๋ฎฌ๋ ˆ์ดํ„ฐ(๋˜๋Š” ์Šค๋งˆํŠธํฐ) ํ™”๋ฉด ๋Œ€์‹  ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋กœ๊ทธ์— ์ •์˜๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ™•์ธ

Log.d("ํƒœ๊ทธ", "์ถœ๋ ฅ ๋ฉ”์„ธ์ง€");
  • Log.d์—์„œ d๋Š” debug๋ฅผ ์˜๋ฏธ
  • ์ฒซ ๋ฒˆ์งธ ์ธ์ž: ๊ฒ€์ƒ‰ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” "ํƒœ๊ทธ"๋ฅผ ์ž…๋ ฅ
  • ๋‘ ๋ฒˆ์งธ ์ธ์ž: '์‹ค์ œ ์ถœ๋ ฅํ•  ๋ฉ”์„ธ์ง€'๋ฅผ ์ž…๋ ฅ

 

๐Ÿ’ก ์‹ค์Šต

 

Log.d("BasicSyntax", "๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. method = Log.d")

(1) ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ

 

package net.flow9.thisiskotlin.basicsyntax

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Log.d("BasicSyntax", "๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. method = Log.d")
    }
}


(2) MainActivity.kt ํŒŒ์ผ์„ ์—ด๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ setContentView... ๋ฐ‘์— ์ž…๋ ฅ

(3) ์•ˆ๋“œ๋กœ์ด๋“œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋™์ž‘

(4) ํ•˜๋‹จ์˜ [Logcat] ํƒญ์„ ํด๋ฆญํ•˜์—ฌ ํ™•์ธ
ํ•„ํ„ฐ์ฐฝ์— ์ž…๋ ฅ: package:mine level:debug tag:BasicSyntax
→ ์†Œ์Šค ์ฝ”๋“œ์˜ Log.d ํ•จ์ˆ˜์— ์ž…๋ ฅํ–ˆ๋˜ ํด๋ž˜์Šค์˜ d๋ฅผ ์˜๋ฏธํ•˜๋Š” debug๋ฅผ package:mine ๋’ค์— level:debug๋ผ๊ณ  ์ž…๋ ฅ ํ›„
    "ํƒœ๊ทธ"๋กœ ์ž…๋ ฅํ–ˆ๋˜ BasicSyntax๋ฅผ ์˜๋ฏธํ•˜๋Š” tag:BasicSyntax ์ž…๋ ฅ

 

๋กœ๊ทธ ์ถœ๋ ฅ

 

 

 

 

 


 

2 ๋ณ€์ˆ˜

 

๋ณ€์ˆ˜(Variable) - var

  • ๊ฐ’์„ ์ž„์‹œ๋กœ ๋ฉ”๋ชจ๋ฆฌ(์ €์žฅ ๊ณต๊ฐ„)์— ์ €์žฅํ•˜๊ณ , ๊ทธ ์ €์žฅ ๊ณต๊ฐ„์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•œ ๊ฒƒ
  • ์ด๋ฆ„๊ณผ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ
  • ๋ณ€์ˆ˜์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜๊ณ  ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ํ–‰์œ„๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์œ„์น˜์— ์ด๋ฆ„ํ‘œ๋ฅผ ๋ถ™์ด๊ณ  ๊ฐ’์„ ๋‹ด์•„๋‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ
  • ์†Œ์Šค ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์•ž์—์„œ ๋ถ™์˜€๋˜ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

 

๋ณ€์ˆ˜ ์„ ์–ธ๋ฐฉ์‹

 

var ๋ณ€์ˆ˜๋ช…(์ด๋ฆ„) = ๊ฐ’
โ€‹
(์˜ˆ์‹œ)
var myName = "ํ™๊ธธ๋™" // ๋ณ€์ˆ˜๋ช… myName์— ๋ฌธ์ž์—ด "ํ™๊ธธ๋™"์„ ์ž…๋ ฅ

์ฒซ์งธ, ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ’ ๋„ฃ๊ธฐ

  • ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์œผ๋กœ ํƒ€์ž…์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ์ˆœ๊ฐ„ ํ•ด๋‹น ๊ฐ’์˜ ํ˜•ํƒœ(๋ฌธ์ž, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๋“ฑ)๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋จ

 

var ๋ณ€์ˆ˜๋ช…: ํƒ€์ž…
๋ณ€์ˆ˜๋ช… = ๊ฐ’
โ€‹
(์˜ˆ์‹œ)
var myAge: Int // ๋ณ€์ˆ˜๋ช… myAge๋ฅผ Int ํƒ€์ž…์œผ๋กœ ์„ ์–ธ
myAge = 27     // ์ˆซ์ž '27'์„ ์ž…๋ ฅ


๋‘˜์งธ, ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ณ  ์„ ์–ธ๋งŒ ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ

  • ์„ ์–ธ๋งŒ ํ•  ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ ๋ณ€์ˆ˜๋ช… ์˜†์— ์ฝœ๋ก (:) ๊ตฌ๋ถ„์ž๋ฅผ ๋ถ™์—ฌ์„œ ํƒ€์ž…(์ž๋ฃŒํ˜•)์„ ์ง€์ •ํ•ด์•ผ ํ•จ

์œ„ ๋‘๊ฐ€์ง€ ์˜ˆ์‹œ๋กœ ๋ณ€์ˆ˜๋Š” ์ตœ์ดˆ ์„ ์–ธ ์‹œ์— ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Œ
๋ณ€์ˆ˜๋Š” ํ•œ๋ฒˆ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๋ฉด ๋™์ผํ•œ ํƒ€์ž…์˜ ๊ฐ’๋งŒ ๋‹ด์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, int ํƒ€์ž…์˜ ๋ณ€์ˆ˜์— string์„ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒํ•จ

 

 

 

Kotlin ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ž๋ฃŒํ˜•)

๊ตฌ๋ถ„ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์„ค๋ช… ๊ฐ’์˜ ๋ฒ”์œ„ ๋ฐ ์˜ˆ
์ˆซ์žํ˜• ์‹ค์ˆ˜ํ˜• Double 8๋ฐ”์ดํŠธ (64๋น„ํŠธ) -1.7E+308์˜ ๊ทผ์‚ฟ๊ฐ’ ~ 1.7E+308์˜ ๊ทผ์‚ฟ๊ฐ’
Float 4๋ฐ”์ดํŠธ (32๋น„ํŠธ) -3.4E+38์˜ ๊ทผ์‚ฟ๊ฐ’ ~ 3.4E+38์˜ ๊ทผ์‚ฟ๊ฐ’
์ •์ˆ˜ํ˜• Long 8๋ฐ”์ดํŠธ (64๋น„ํŠธ) -2E63 ~ 2E63-1
int 4๋ฐ”์ดํŠธ (32๋น„ํŠธ) -2,147,483,648 ~ 2,147,483,647
Short 2๋ฐ”์ดํŠธ (16๋น„ํŠธ) -32,768 ~ 32,767
Byte 1๋ฐ”์ดํŠธ (8๋น„ํŠธ) -128 ~ 127
๋ฌธ์žํ˜• Char 1๊ฐœ์˜ ๋ฌธ์ž (16๋น„ํŠธ) ‘๊ธ€’ (์™ธ๋”ฐ์˜ดํ‘œ)
String ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ž “์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ธ€์ž์ž…๋‹ˆ๋‹ค.” (์Œ๋”ฐ์˜ดํ‘œ)
๋ถˆ๋ฆฌ์–ธํ˜• Boolean true, false ๋‘ ๊ฐ€์ง€ ๊ฐ’ true ๋˜๋Š” false
  • ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด ์‚ฌ์–‘์€ ํ•œ์ •์ ์ด๋ฏ€๋กœ ์•Œ๋งž๊ฒŒ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ค‘์š”
  • ์ฐธ๊ณ ๋กœ ํ•œ๊ธ€์˜ ๊ฒฝ์šฐ ํ•œ ๊ธ€์ž ์ €์žฅ์— Byte๊ฐ€ ์•„๋‹Œ Char๋ฅผ ์“ฐ๋Š” ๊ฒŒ ์ข‹์Œ (์˜์–ด์™€ ๋‹ฌ๋ฆฌ 2๋ฐ”์ดํŠธ์”ฉ ์‚ฌ์šฉ)

 

 

 

๊ธฐ๋ณธ ํƒ€์ž…

  • ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š” ๊ฐ’์˜ ํฌ๊ธฐ๊ฐ€ ๋ฏธ๋ฆฌ ์ •ํ•ด์ ธ ์žˆ๋Š” ํƒ€์ž…
  • Int๋Š” 2,147,483,647๊นŒ์ง€๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ , Byte๋Š” 127๊นŒ์ง€๋งŒ ์ €์žฅ ๊ฐ€๋Šฅ
  • Byte์— ์ €์žฅ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„œ๋Š” 128์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ์ „ํ˜€ ๋‹ค๋ฅธ ์ˆซ์ž๊ฐ€ ๋จ
  • String์˜ ๊ฒฝ์šฐ๋Š” ์Œ๋”ฐ์˜ดํ‘œ(" ") ์‚ฌ์ด์— ๋ช‡ ๊ธ€์ž๊ฐ€ ๋“ค์–ด๊ฐ€๋„ ์ƒ๊ด€์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์˜ ํฌ๊ธฐ๋ฅผ ํŠน์ •ํ•  ์ˆ˜ ์—†์Œ, ๊ธฐ๋ณธํƒ€์ž…X

 

 

Double

var doubleValue: Double
doubleValue = 3.141592
  • ์†Œ์ˆ˜์ ์ด ์žˆ๋Š” ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ

 

 

Float

var floatValue: Float
floatValue = 3.141592F
  • Double๊ณผ ๋™์ผํ•œ ์šฉ๋„์ด์ง€๋งŒ ๋” ์ž‘์€ ๋ฒ”์œ„์˜ ์ˆซ์ž๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ
  • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋Š” Double๊ณผ Float์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด Float์˜ ๊ฒฝ์šฐ ์ˆซ์ž ๋์— 'F'๋ฅผ ๋ถ™์ž„

 

Int

var intValue: Int
intValue = 2147483647

// ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ์–ธ๋”๋ฐ”(_)๋กœ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
// ์–ธ๋”๋ฐ”๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์ปดํ“จํ„ฐ๋Š” ์•ž์˜ ๊ฐ’๊ณผ ๋™์ผํ•˜๊ฒŒ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค!

var intValue: Int
intValue = 2_147_483_647
  • ์†Œ์ˆ˜์ ์ด ์—†๋Š” ์ •์ˆซ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ

 

 

Long

var longValue: Long
longValue = 2147483647L
  • Int๋ณด๋‹ค ํฐ ๋ฒ”์œ„์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅ
  • Double๊ณผ Float์˜ ๊ด€๊ณ„์ฒ˜๋Ÿผ Int์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ˆซ์ž์˜ ๋์— 'L'์„ ๋ถ™์ž„
  • Long ํƒ€์ž…์˜ ๊ฒฝ์šฐ์—๋Š” ์„ค์ •ํ•œ ๊ธ€๊ผด์— ๋”ฐ๋ผ ์ˆซ์ž 1๊ณผ ๊ตฌ๋ถ„์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ

 

๐Ÿ’ก์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜์—๋Š” ์‹ค์ˆ˜ํ˜• ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Œ
๐Ÿ’ก๊ฐ™์€ ์ˆซ์ž๋ผ๋„ ์ž๋ฃŒํ˜• ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ์ž…๋ ฅํ•  ์ˆ˜ ์—†๊ณ , ๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…(์ž๋ฃŒํ˜•)์„ ๋ณ€ํ™˜ํ•˜์—ฌ ์ž…๋ ฅ

 

Short์™€ Byte

var shortValue: Short = 32_767
var byteValue: Byte = 127
  • Int๋ณด๋‹ค ์ž‘์€ ๋ฒ”์œ„์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅ

 

 

๐Ÿ’ก ํƒ€์ž…์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ์ˆซ์ž ์ €์žฅ๋ฐฉ์‹

์œ„ ์˜ˆ์ œ๋“ค์„ ์‚ดํŽด๋ณด๋ฉด, ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ ๋‹ค์Œ์— ํ•ญ์ƒ ์ฝœ๋ก (:) ๊ตฌ๋ถ„์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํƒ€์ž…์„ ์ง€์ •ํ•จ
์ด์œ ๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ์ผ๋ฐ˜ ์ˆซ์ž ๊ฐ’์„ ๋ชจ๋‘ Int ํƒ€์ž…์œผ๋กœ ์ธ์‹ํ•ด ์˜๋„์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ


var byteValue: Byte = 127 // 127์ด Byte ํƒ€์ž…์œผ๋กœ ์ €์žฅ
var byteValue2 = 127      // 127์ด Int ํƒ€์ž…์œผ๋กœ ์ €์žฅ
โ€‹
var floatValue: Float = 3.14F // 3.14๊ฐ€ Float ํƒ€์ž…์œผ๋กœ ์ €์žฅ
var doubleValue = 3.14        // ๋์— F๋ฅผ ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด Double๋กœ ์ €์žฅ

 

 

Char

var charValue = 'A'
  • ํ•˜๋‚˜์˜ ๊ธ€์ž๋งŒ ์™ธ๋”ฐ์˜ดํ‘œ('  ')๋กœ ๊ฐ์‹ธ์„œ ์ €์žฅ
  • ํƒ€์ž…์„ ํŠน์ •ํ•˜์ง€ ์•Š์•„๋„ ์™ธ๋”ฐ์˜ดํ‘œ ์•ˆ์— ํ•˜๋‚˜์˜ ๊ธ€์ž๋งŒ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Char๋กœ ์ €์žฅ๋จ

 

String

var stringValue: String = "ABCDEF"
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ง€์ •
  • ๊ธฐ๋ณธ ํƒ€์ž…์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์ง€๋งŒ ๊ฑฐ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ ์–ธ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ž…

 

Boolean

var boolValue = true
  • true, false ๋‘˜ ์ค‘์— 1๊ฐœ์˜ ๊ฐ’์„ ์ €์žฅ
  • ์ฃผ๋กœ ์กฐ๊ฑด๋ฌธ์—์„œ ์˜์‚ฌ๊ฒฐ์ •์„ ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ๋งŽ์ด ์‚ฌ์šฉ

 

๐Ÿ’ก Int 2,147,483,647 ๊ฐ’์— 1์„ ๋”ํ•˜๋ฉด?

์–‘์ˆ˜์˜ ์ €์žฅ

  • Int๋Š” 32๋น„ํŠธ๊นŒ์ง€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 32๊ฐœ์˜ ๋น„ํŠธ๋กœ ๊ตฌ์„ฑ
  • Int 2,147,483,647์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 32๊ฐœ์˜ ๋น„ํŠธ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„
    ์˜ˆ) 0111 1111 1111 1111 1111 1111 1111 1111  
         ๊ฐ€์žฅ ์•ž์˜ ๋น„ํŠธ 0์€ ๊ฐ’์ด ์•„๋‹Œ ๋ถ€ํ˜ธ ๋น„ํŠธ๋กœ, ๋ถ€ํ˜ธ ๋น„ํŠธ๊ฐ€ 0์ด๋ฉด ์–‘์ˆ˜(+), 1์ด๋ฉด ์Œ์ˆ˜(-) 

2์˜ ๋ณด์ˆ˜์™€ ์ž…๋ ฅ๊ฐ’์˜ ์ œํ•œ

  • ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ๋Š” ์Œ์ˆ˜๋ฅผ '2์˜ ๋ณด์ˆ˜๋ฒ•'์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅ
  • ์ด๋Š” ์Œ์ˆ˜์˜ ์ ˆ๋Œ“๊ฐ’์„ 2์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ณ (1์˜ ๋ณด์ˆ˜), ์—ฌ๊ธฐ์— ๋‹ค์‹œ 1์„ ๋”ํ•˜๋Š”(2์˜ ๋ณด์ˆ˜) ๊ฒƒ์„ ๋งํ•จ
    -2,147,483,648์€ ๊ฐ’(1์˜ ๋ณด์ˆ˜)์— 1์„ ๋”ํ•œ ๊ฒฐ๊ณผ์ด๋ฏ€๋กœ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์˜ 1๋ถ€ํ„ฐ ์ž๋ฆฌ๊ฐ€ ๋ฐ”๋€Œ๋ฉด์„œ ๋ชจ๋‘ 0์œผ๋กœ ๋ฐ”๋€œ
  • Int ํƒ€์ž…์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์ธ 2,147,483,647์„ ์ด์ง„์ˆ˜๋กœ ํ‘œ์‹œํ•˜๋ฉด
    0111 1111 1111 1111 1111 1111 1111 1111
    ์œ„ ๊ฐ’์— 1์„ ๋”ํ•˜๋ฉด ๋ชจ๋“  ๊ฐ’์ด ์˜ฌ๋ฆผ์ด ๋˜๋ฉด์„œ ์Œ์ˆ˜ -2,147,483,648์ด ๋˜๊ณ  ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒ
    1000 0000 0000 0000 0000 0000 0000 0000
    Byte๋‚˜ Long๋„ ๋™์ผํ•œ ์›๋ฆฌ๋กœ ๋™์ž‘ํ•จ
    ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์„ ์–ธํ•  ๋•Œ๋Š” ์ €์žฅ๋  ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ํ•ญ์ƒ ๊ณ ๋ คํ•ด์•ผ ํ•จ

 

 

โ€‹

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
โ€‹
        var myName = "ํ™๊ธธ๋™"
        var myAge: Int
        myAge = 27
        myAge = myAge + 1
        Log.d("BasicSyntax", "myName = $myName, myAge = $myAge")
    }
}


// ๋กœ๊ทธ ๊ฒฐ๊ณผ ๊ฐ’: myName = ํ™๊ธธ๋™, myAge = 28



๐Ÿ’ก ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ

var name="ํ™๊ธธ๋™"
Log.d("BasicSyntax", "์ œ ์ด๋ฆ„์€ $name ์ž…๋‹ˆ๋‹ค.") 

// ์ถœ๋ ฅ: ์ œ ์ด๋ฆ„์€ ํ™๊ธธ๋™ ์ž…๋‹ˆ๋‹ค.
  • ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๋”ํ•˜๊ธฐ(+) ์—ฐ์‚ฐ์œผ๋กœ 2๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ์ˆ˜ ์žˆ์Œ
    ์˜ˆ) "ํ™" + "๊ธธ๋™"์ฒ˜๋Ÿผ 2๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๋”ํ•˜๋ฉด "ํ™๊ธธ๋™"๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด ์คŒ
  • ์ถ”๊ฐ€๋กœ ๋ฌธ์ž์—ด์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ๋„ ์ œ๊ณต
    ๋ฌธ์ž์—ด ๋‚ด๋ถ€์—์„œ ๋‹ฌ๋Ÿฌ($) ๊ธฐํ˜ธ๋ฅผ ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ์˜์—ญ์ด ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ผ๋Š” ๊ฒƒ์„ ์ „๋‹ฌ

 

์ฃผ์˜ํ•  ์ 

"์ œ ์ด๋ฆ„์€ $name(๊ณต๋ฐฑ) ์ž…๋‹ˆ๋‹ค." 

// ์ด์–ด์ง€๋Š” ๋ฌธ์ž์—ด๊ณผ์˜ ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์—†์œผ๋ฉด ๋ฌธ์ž์—ด๋กœ ์ธ์‹ํ•จ
  • $๋ณ€์ˆ˜ ๋‹ค์Œ์— ์ด์–ด์ง€๋Š” ๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด์•ผ ํ•จ

 

 

 

์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜ Val (Value)

  • ๋ณ€์ˆ˜์˜ ๋‹ค๋ฅธ ์„ ์–ธ ๋ฐฉ๋ฒ• - ์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜ val
  • var๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ํ•œ ๋ฒˆ ์ž…๋ ฅ๋œ ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ. ๋”ฐ๋ผ์„œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ž…๋ ฅํ•ด๋‘˜ ๋•Œ ์‚ฌ์šฉ
  • ์ƒ์ˆ˜๋ผ๊ณ ๋„ ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜์ง€๋งŒ ์ƒ์ˆ˜์™€๋Š” ์˜๋ฏธ๊ฐ€ ์กฐ๊ธˆ ๋‹ค๋ฆ„

 

์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜ val ์„ ์–ธํ•˜๊ธฐ

val ๋ณ€์ˆ˜๋ช…(์ด๋ฆ„) = ๊ฐ’

์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ณ€์ˆ˜์™€ ๋™์ผํ•˜๋ฉฐ ์ด๋ฆ„ ์•ž์— val์„ ๋ถ™์ด๋ฉด ์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜๊ฐ€ ๋จ


val roadName = "๊ตญ์ œ๊ธˆ์œต๋กœ"        // ๋ฏธ๋ฆฌ ์ง€์ •    
var address = roadName + "8๊ธธ"   // ํ•„์š”ํ•  ๋•Œ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉ

๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด๋‘๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’๊ณผ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉ


val language = "kotlin"
language = "java"    // ERROR, val์€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

val๋กœ ์ •์˜๋œ ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ

 

์ƒ์ˆ˜ const

const val PI = 3.141592
  • ์ƒ์ˆ˜๋Š” ์ฃผ๋กœ ๊ธฐ์ค€์ด ๋˜๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•ด๋‘˜ ๋•Œ ์‚ฌ์šฉ
  • ์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜์ธ val ์•ž์— const ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์„œ ์„ ์–ธ
  • val๊ณผ ๊ฐ™์ด ์ฝ๊ธฐ ์ „์šฉ์ธ ๊ฒƒ์€ ๋™์ผํ•˜์ง€๋งŒ, ์ปดํŒŒ์ผ ์‹œ์— ๊ฐ’์ด ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์—
    Int, Long๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธํ˜•๊ณผ ๋ฌธ์ž์—ด์ธ String๋งŒ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Œ

 

 

 

์ฝ”๋”ฉ ์ปจ๋ฒค์…˜

  • ๊ตฌ์„ฑ์›๋“ค์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ทœ์น™
  • ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์ฒœ ๋ช… ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•จ๊ป˜ ์ผํ•˜๊ธฐ๋„ ํ•จ
  • ๊ฐ์ž์˜ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋”ฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ๋‹ค์Œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ๋•Œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์–ด๋ ค์›€
  • ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ์—์„œ๋Š” ์ตœ์ดˆ ๊ฐœ๋ฐœ์ž์™€ ์œ ์ง€๋ณด์ˆ˜ ๋‹ด๋‹น์ž๊ฐ€ ๋‹ค๋ฅด๊ธฐ์— ํ•„์š”

 

ํด๋ž˜์Šค๋ช…

class MainActivity{
    val name = "kotlin"
    var age = 17
    fun getFullName(): String{
        ...
    }
}

 

  • ํด๋ž˜์Šค(Class): ์ฝ”๋“œ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๋ชจ์•„ ๋†“์€ ๊ฒƒ
  • ํด๋ž˜์Šค๋Š” ์œ„์™€ ๊ฐ™์ด ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ํฌํ•จ
  • ๋Œ€์ฒด๋กœ ํด๋ž˜์Šค์˜ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜(๋ช…๋ช… ๊ทœ์น™)์€ ์บ๋ฉ€ ์ผ€์ด์Šค(Camel Case)๋ฅผ ์‚ฌ์šฉ
     ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ, ๋‚˜๋จธ์ง€ ๊ธ€์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ํ‘œ๊ธฐ, ์ƒˆ๋กœ์šด ๋‹จ์–ด๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐ
  • ํด๋ž˜์Šค๋ช…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ผ๋ช…๊ณผ ๋™์ผํ•˜์ง€๋งŒ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹˜
  • ์•ž์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ ์ค‘์— class MainActivity...๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ MainActivity๊ฐ€ ํด๋ž˜์Šค๋ช…

 

 

ํ•จ์ˆ˜๋ช…๊ณผ ๋ณ€์ˆ˜๋ช…

fun onCreateActivity() 
// ์ฒซ ๊ธ€์ž์ธ o๋Š” ์†Œ๋ฌธ์ž, ์ƒˆ๋กœ์šด ๋‹จ์–ด(Create, Activity)์˜ ์ฒซ ๊ธ€์ž(C, A)๋Š” ๋Œ€๋ฌธ์ž

var intValue: Int
// ์ฒซ ๊ธ€์ž์ธ i๋Š” ์†Œ๋ฌธ์ž, ์ƒˆ๋กœ์šด ๋‹จ์–ด(Value)์˜ ์ฒซ ๊ธ€์ž(V)๋Š” ๋Œ€๋ฌธ์ž
  • ์บ๋ฉ€ ์ผ€์ด์Šค๋ฅผ ๋”ฐ๋ฅด๋ฉฐ ์ฒซ ๊ธ€์ž๋งŒ ์†Œ๋ฌธ์ž๋กœ, ์ดํ›„ ์ƒˆ๋กœ์šด ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐ

 

 

์ƒ์ˆ˜๋ช…

const val HELLO: String = "์•ˆ๋…•"


const val HOW_ARE_YOU: String = "์–ด๋–ป๊ฒŒ ์ง€๋‚ด?"
์ƒ์ˆ˜๋ช…์ด 2๊ฐœ์˜ ๋‹จ์–ด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค๋ฉด ๋‹จ์–ด ์‚ฌ์ด๋ฅผ ์–ธ๋”๋ฐ”(_)๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค(Snake Case)๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์ƒ์ˆ˜๋ช…์€ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ

 

๐Ÿ’ก ์š”์ฆ˜์˜ ํ•จ์ˆ˜๋ช…๊ณผ ๋ณ€์ˆ˜๋ช… ์ž‘์„ฑ ๊ทœ์น™

  • ์š”์ฆ˜์€ ํด๋ž˜์Šค๋ช…์„ ์ œ์™ธํ•œ ํ•จ์ˆ˜๋ช…๊ณผ ๋ณ€์ˆ˜๋ช…์„ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค๋กœ ์ž‘์„ฑํ•˜๋Š” ํšŒ์‚ฌ๋„ ๋งŽ์•„์ง (๊ฐ€๋…์„ฑ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ)
  • ๊ทธ๋Ÿฌ๋‚˜ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ ์ƒ์ˆ˜๋ช…๋งŒ ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ๋•Œ๋Š” ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•จ์— ์œ ์˜
    ex. fun on_create_activity()
  • ๊ฐœ์ธ ์„ ํ˜ธ๋„์— ๋”ฐ๋ผ ์บ๋ฉ€ ์ผ€์ด์Šค, ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค ์ค‘ ํ•œ ๊ฐ€์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,
    ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜์˜ ์ผ€์ด์Šค๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ์ผ๊ด€์„ฑ์„ ์ง€์ผœ์•ผ ํ•จ

 

 

๋“ค์—ฌ์“ฐ๊ธฐ

class MainActivity{ // ์ƒˆ๋กœ์šด ๋ธ”๋ก์˜ ์‹œ์ž‘
    var newVariable = 50 // ์ผ๋ฐ˜์ ์œผ๋กœ ๋งจ ์•ž์— ๊ณต๋ฐฑ 4์นธ ๋“ค์—ฌ์“ฐ๊ธฐ ์‚ฌ์šฉ
    
    fun on_create_activity(){ // ๋‹ค์‹œ ์ƒˆ๋กœ์šด ๋ธ”๋ก์˜ ์‹œ์ž‘
        var variable = 10 // ์ถ”๊ฐ€ ๊ณต๋ฐฑ 4์นธ(8์นธ) ๋“ค์—ฌ์“ฐ๊ธฐ
        Log.d("BasicSyntax", "๋ณ€์ˆ˜์˜ ๊ฐ’์€ $variable ์ž…๋‹ˆ๋‹ค.") // ์ถ”๊ฐ€ ๊ณต๋ฐฑ 4์นธ(8์นธ) ๋“ค์—ฌ์“ฐ๊ธฐ
    } // ๊ณต๋ฐฑ 4์นธ ๋“ค์—ฌ์“ฐ๊ธฐ
}
  • ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ธ”๋ก์ด ์‹œ์ž‘๋˜๋ฉด ์ŠคํŽ˜์ด์Šค๋ฐ”(Spacebar) ๋˜๋Š” ํƒญ(Tab) ํ‚ค๋กœ ๋™์ผํ•œ ๊ฐ„๊ฒฉ๋งŒํผ ๋“ค์—ฌ์“ฐ๊ธฐ
  • ์ฝ”๋”ฉ ๊ทœ์น™์„ ํ†ตํ‹€์–ด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ทœ์น™
  • ์ฝ”๋“œ์— ๋“ค์—ฌ์“ฐ๊ธฐ(Indent)๊ฐ€ ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ์„œ ๋ฉด์ ‘์„ ๋ณผ ๊ธฐํšŒ์กฐ์ฐจ ์—†์„ ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์ค‘์š”

 

 

 

 


 

3 ์กฐ๊ฑด๋ฌธ

 

  • ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ์‹คํ–‰์„ ๋‹ฌ๋ฆฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ
  • '์ œ์–ด๋ฌธ'์ด๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ, ์ด๋Š” ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
  • ์ œ์–ด๋ฌธ ์ข…๋ฅ˜: (์กฐ๊ฑด๋ฌธ) if, when  / (๋ฐ˜๋ณต๋ฌธ) for, while
  • if๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ์— ๋ชจ๋“  ์กฐ๊ฑด์„ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋งŽ์•„์งˆ ๋•Œ๋Š” when์„ ์‚ฌ์šฉ

 

 

์กฐ๊ฑด๋ฌธ if

๋งŒ์•ฝ ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ณต๊ถŒ ๋ฒˆํ˜ธ๊ฐ€ 1, 2, 3, 4, 5, 6์ด๊ณ  ์ด๋ฒˆ ์ฃผ ๋‹น์ฒจ ๋ฒˆํ˜ธ๊ฐ€ 5, 6, 7, 8, 9, 10์ผ ๊ฒฝ์šฐ 
๋‹น์ฒจ ์—ฌ๋ถ€๋ฅผ ์กฐ๊ฑด๋ฌธ ์ค‘ ํ•˜๋‚˜์ธ if๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ


var myNumbers = "1, 2, 3, 4, 5, 6"
var thisWeekNumbers = "5, 6, 7, 8, 9, 10"
if (myNumbers == thisWeekNumbers){ // if๋ฌธ ์‹œ์ž‘(ํ•ด๋‹น ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด if ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰)
    Log.d("Lotto", "๋‹น์ฒจ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!") 
} // if๋ฌธ ๋


๋‚ด ๋ฒˆํ˜ธ์ธ myNumbers์™€ ์ด๋ฒˆ ์ฃผ ๋‹น์ฒจ ๋ฒˆํ˜ธ์ธ thisWeekNumbers๊ฐ€ ๊ฐ™์€์ง€๋ฅผ 
์กฐ๊ฑด๋ฌธ์ธ if๋กœ ๋น„๊ตํ•œ ํ›„ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” "๋‹น์ฒจ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."๋ฅผ ์ถœ๋ ฅ
๊ทธ๋Ÿฌ๋‚˜ ์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ฏธ์ถœ๋ ฅ
  • Kotlin์—์„œ๋Š” if์™€ when, ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉ

 

 

 

if ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด

์ข…๋ฅ˜ ์—ฐ์‚ฐ์ž ์˜๋ฏธ ์‚ฌ์šฉ ์˜ˆ ๊ฒฐ๊ณผ
๋น„๊ต ์—ฐ์‚ฐ์ž > ์™ผ์ชฝ์ด ํฌ๋ฉด true, ์ž‘์œผ๋ฉด false 1 > 2 false
< ์™ผ์ชฝ์ด ์ž‘์œผ๋ฉด true, ํฌ๋ฉด false 1 < 2 true
>= ์™ผ์ชฝ์ด ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false 1 >= 2 false
<= ์™ผ์ชฝ์ด ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false 1 <= 2 true
== 2๊ฐœ ํ•ญ์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false
(์ฃผ์˜: = ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜)
1 == 2 false
!= 2๊ฐœ ํ•ญ์˜ ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด true, ์•„๋‹ˆ๋ฉด false 1 != 2 true
๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž && ๋…ผ๋ฆฌ๊ณฑ
๋‘ ํ•ญ์ด ๋ชจ๋‘ true์ผ ๋•Œ์—๋Š” true, ์•„๋‹ˆ๋ฉด false
(2 > 1) && (3 < 1) false
|| ๋…ผ๋ฆฌํ•ฉ
๋‘ ํ•ญ ์ค‘ ํ•˜๋‚˜์˜ ํ•ญ์ด true์ผ ๋•Œ์—๋Š” true,
์•„๋‹ˆ๋ฉด false
(2 > 1) || (3 < 1) true
! ๋ถ€์ • ๋‹จํ•ญ ์—ฐ์‚ฐ์ž
true๋ฅผ false๋กœ, false๋ฅผ true๋กœ ๋ฐ”๊ฟˆ
! (2 > 1) false
  • if ๋ฌธ์˜ ์กฐ๊ฑด์‹์—๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž(==, <, >)์™€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(&&, ||)๋ฅผ ์‚ฌ์šฉํ•œ ์กฐ๊ฑด์‹๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๋Š” Boolean ํƒ€์ž…์ธ ture(์ฐธ)์™€ false(๊ฑฐ์ง“)๋กœ ๋‚˜ํƒ€๋‚จ

 

 

 

๊ธฐ๋ณธ์ ์ธ if ๋ฌธ

if (์กฐ๊ฑด์‹) {
    // ์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜์—ญ
}
  • ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ true์ผ ๋•Œ ์ฒ˜๋ฆฌํ•  ์ฝ”๋“œ๋ฅผ ์ฝ”๋“œ ๋ธ”๋ก { } ์•ˆ์— ์ž‘์„ฑ
  • ์ค‘๊ด„ํ˜ธ {   } ์•ˆ์˜ ์ฝ”๋“œ๋ฅผ ์ฝ”๋“œ ๋ธ”๋ก(Code Block) ๋˜๋Š” ์ฝ”๋“œ ์Šค์ฝ”ํ”„(Code Scope)๋ผ๊ณ  ํ•จ

 

 

if ~ else ๋ฌธ

if (์กฐ๊ฑด์‹) {
    // ์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜์—ญ
} else {
    // ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜์—ญ
}

 

 

๐Ÿ’ก ์ฃผ์„

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์ƒ์— ๋‚จ๊ธด ์ฝ”๋”ฉ๊ณผ ๊ด€๋ จํ•œ ๋ฉ”๋ชจ
  • ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ๋ฌธ์žฅ์€ ์ปดํ“จํ„ฐ๊ฐ€ ํ•ด์„ํ•˜์ง€ ์•Š์Œ
  • ์ฃผ์„ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ• 3๊ฐ€์ง€
    1) // ํ•œ ์ค„ : ํ•œ ์ค„์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ. ์ค„์˜ ์–ด๋Š ์œ„์น˜์—์„œ ์‚ฌ์šฉํ•ด๋„ ํ•ด๋‹น ์ค„์˜ ๋๊นŒ์ง€ ์ฃผ์„ ์ฒ˜๋ฆฌ
    2) /* ์—ฌ๋Ÿฌ ์ค„ */ : ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์ณ์„œ ์ฃผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ. /*๋กœ ์‹œ์ž‘ํ•ด์„œ ๋‹ค์Œ์— ๋‚˜ํƒ€๋‚˜๋Š” */๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์ฃผ์„ ์ฒ˜๋ฆฌ
    3) /** ๋ฌธ์„œํ™” */ : ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์„œํ™”ํ•  ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” / ๋‹ค์Œ์— **๊ฐ€ 2๊ฐœ 
  • ์ฃผ์„ ์‚ฌ์šฉ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์š”์ฆ˜ ์ถ”์„ธ๋Š” ํด๋ž˜์Šค, ํ•จ์ˆ˜, ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ ์  ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ
    ๋‚˜์ด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ a๋ผ๊ณ  ์ž‘์„ฑํ•˜๊ณ  ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ๋ณ€์ˆ˜๋ช… ์ž์ฒด๋ฅผ age๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๊ธฐ์ˆ ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ

 

 

if ~ else if ~ else ๋ฌธ 

if (์กฐ๊ฑด์‹1) {
    // ์กฐ๊ฑด์‹1์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜์—ญ
} else if (์กฐ๊ฑด์‹ 2){
    // ์กฐ๊ฑด์‹1์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด๊ณ , ์กฐ๊ฑด์‹2์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜์—ญ
} else {
    // ์กฐ๊ฑด์‹1๊ณผ ์กฐ๊ฑด์‹2์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ชจ๋‘ ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜์—ญ
}
  • ๋งˆ์ง€๋ง‰ else์—๋Š” ์กฐ๊ฑด์‹์„ ๋„ฃ์œผ๋ฉด ์˜ค๋ฅ˜ ๋œธ
  • if ๋ฌธ๋งŒ 2๊ฐœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ 2๊ฐœ์˜ if ๋ฌธ์ด ๋ชจ๋‘ ์‹คํ–‰๋˜์ง€๋งŒ,
    else if ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ž์˜ if ๋ฌธ ์กฐ๊ฑด์‹์„ ๋งŒ์กฑํ•˜๋ฉด ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” else if ๋ฌธ์€ ์‹คํ–‰๋˜์ง€ ์•Š์Œ

 

 

๋ณ€์ˆ˜์— ์ง์ ‘ if ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ

var a = 5
var b = 3
var bigger = if (a > b) a else b

a์™€ b๋ฅผ ๋น„๊ตํ–ˆ์„ ๋•Œ a๊ฐ€ b๋ณด๋‹ค ๋” ํฌ๋ฏ€๋กœ ๋ณ€์ˆ˜ bigger์— '5'๋ฅผ ๋Œ€์ž…
  • if ๋ฌธ์˜ ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ๋ฐ”๋กœ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ์Œ

 

 

if ๋ฌธ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

var a = 5
var b = 3
var bigger = if (a > b){
     var c = 30
     a // ๋งˆ์ง€๋ง‰ ์ค„์˜ a ๊ฐ’์ด ๋ณ€์ˆ˜ bigger์— ์ €์žฅ๋จ
} else {
     b
}
  • if ๋ฌธ์˜ ์ฝ”๋“œ ์˜์—ญ์ด ์—ฌ๋Ÿฌ ์ค„์ผ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ง€๋ง‰ ์ค„์„ ๋ณ€์ˆซ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ’ก๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ: ๋ฌธ์ž์—ด ์•ˆ์—์„œ ์ˆ˜์‹ ์‚ฌ์šฉํ•˜๊ธฐ

"๋ฌธ์ž์—ด $๋ณ€์ˆ˜ ๋ฌธ์ž์—ด"
"๋ฌธ์ž์—ด ${๋ณ€์ˆ˜ + 1} ๋ฌธ์ž์—ด"
โ€‹
// ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜ ํ•˜๋‚˜๋งŒ ์žˆ์„ ๋•Œ๋„ { }๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
"๋ฌธ์ž์—ด ${๋ณ€์ˆ˜} ๋ฌธ์ž์—ด"
  • ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ์—๋Š” $๋ณ€์ˆ˜์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,
    ์ถ”๊ฐ€์ ์ธ ์—ฐ์‚ฐ์‹์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ${์ฝ”๋“œ ๋ธ”๋ก} ์•ˆ์— ์ˆ˜์‹์„ ์ž…๋ ฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ˆ˜์‹ ์—†์ด ${๋ณ€์ˆ˜} ๋กœ ํ‘œํ˜„๋„ ๊ฐ€๋Šฅ

 

์กฐ๊ฑด๋ฌธ when

๋‹ค๋ฅธ ์–ธ์–ด์—์„œ์˜ ์˜ˆ์‹œ

switch (๋ณ€์ˆ˜){
    case ๋น„๊ต๊ฐ’:
        // ๋ณ€์ˆซ๊ฐ’์ด ๋น„๊ต๊ฐ’๊ณผ ๊ฐ™๋‹ค๋ฉด ์ด ์˜์—ญ์ด ์‹คํ–‰
    case ๋น„๊ต๊ฐ’:
    break;
}
  • Kotlin์„ ์ œ์™ธํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ ์–ธ์–ด์—์„œ๋Š” switch๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์„ ํƒ๋ฌธ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ
  • switch ๋ฌธ์€ if ๋ฌธ์˜ ์—ฐ์‚ฐ์‹์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž ์ค‘์— ==๋งŒ ์‚ฌ์šฉํ•ด์„œ ๊ฐ™์€ ๊ฐ’์ธ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ์กฐ๊ฑด๋ฌธ
  • Kotlin์˜ when ๋ฌธ์€ ๋‹ค๋ฅธ ์–ธ์–ด์™€๋Š” ๋‹ค๋ฅด๊ฒŒ, ๊ฐ™์€ ๊ฐ’๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฒ”์œ„ ๊ฐ’๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๋„ ๋” ๋งŽ์Œ
    Kotlin์—์„œ์˜ when ๋ฌธ์€ ํŠน์ • ๊ฐ’์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” switch์˜ ์‚ฌ์šฉ๋ฒ• +
    if ๋ฌธ์˜ ๋ฒ”์œ„ ๋น„๊ต ๊ธฐ๋Šฅ์ด ๋”ํ•ด์ง„ if ๋ฌธ์˜ ํ™•์žฅํŒ

 

 

์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ์˜ when

when (ํŒŒ๋ผ๋ฏธํ„ฐ) {
    ๋น„๊ต๊ฐ’1 -> {
        // ๋ณ€์ˆซ๊ฐ’์ด ๋น„๊ต๊ฐ’1๊ณผ ๊ฐ™๋‹ค๋ฉด ์ด ์˜์—ญ์ด ์‹คํ–‰
    }
    ๋น„๊ต๊ฐ’2 -> {
        // ๋ณ€์ˆซ๊ฐ’์ด ๋น„๊ต๊ฐ’2์™€ ๊ฐ™๋‹ค๋ฉด ์ด ์˜์—ญ์ด ์‹คํ–‰
    }
    else -> {
        // ๋ณ€์ˆซ๊ฐ’์ด ์•ž์—์„œ ๋น„๊ตํ•œ ๊ฒƒ๋“ค๊ณผ ๋‹ค๋ฅด๋ฉด ์ด ์˜์—ญ์ด ์‹คํ–‰
    }
}



์˜ˆ์‹œ

 var now = 10
        when (now) {
            8 -> {
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 8์‹œ ์ž…๋‹ˆ๋‹ค.")
            }

            9 -> {
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 9์‹œ ์ž…๋‹ˆ๋‹ค.")
            }

            else -> { // ์œ„์˜ ๋ชจ๋“  ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด else ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 9์‹œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")
            }
  • when ๋‹ค์Œ์— ๊ด„ํ˜ธ ( )๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๊ด„ํ˜ธ ์•ˆ์—๋Š” ์ฃผ๋กœ ๋น„๊ต ๋Œ€์ƒ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜๋ช…์„ ์ž…๋ ฅ
  • ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ๋น„๊ตํ•  ๊ฐ’์€ ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž(Arrow Operator '->')๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ ํƒ
  • switch ๋ฌธ๊ณผ ๋น„๊ต: ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” case๊ฐ€ ์—†์–ด์ง€๊ณ , ๋น„๊ต๊ฐ’ ๋‹ค์Œ์˜ ์ฝœ๋ก ์ด ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž(->)๋กœ ๋Œ€์ฒด, default๋ฅผ else๋กœ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ when ๋ฌธ์—์„œ ๋น„๊ตํ•  ์ˆ˜๋„ ์žˆ์Œ

 

์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ

        var now = 9
        when (now) {
            8, 9 -> {
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 8์‹œ ๋˜๋Š” 9์‹œ ์ž…๋‹ˆ๋‹ค.")
            }
            else -> { // ์œ„์˜ ๋ชจ๋“  ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด else ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ ๋ฉ๋‹ˆ๋‹ค.
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 9์‹œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")
            }
        }
โ€‹
/** [๋กœ๊ทธ์บฃ ์ถœ๋ ฅ ๋‚ด์šฉ]
ํ˜„์žฌ ์‹œ๊ฐ„์€ 8์‹œ ๋˜๋Š” 9์‹œ ์ž…๋‹ˆ๋‹ค. */
  • ํŠน์ • ๊ฐ’์„ ๋น„๊ตํ•˜๋Š”๋ฐ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ๊ฐ€ ๋™์ผํ•˜๋‹ค๋ฉด ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ํ•œ ๋ฒˆ์— ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Œ

 

 


๋ฒ”์œ„ ๊ฐ’์„ ๋น„๊ตํ•˜๊ธฐ

        var ageOfMichael = 19
        when (ageOfMichael) {
            in 10..19 -> {
                Log.d("when", "๋งˆ์ดํด์€ 10๋Œ€ ์ž…๋‹ˆ๋‹ค.")
            }
โ€‹
            !in 10..19 -> {
                Log.d("when", "๋งˆ์ดํด์€ 10๋Œ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")
            }
โ€‹
            else -> {
                Log.d("when", "๋งˆ์ดํด์˜ ๋‚˜์ด๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
            }
        }

โ€‹
/** [๋กœ๊ทธ์บฃ ์ถœ๋ ฅ ๋‚ด์šฉ]
๋งˆ์ดํด์€ 10๋Œ€ ์ž…๋‹ˆ๋‹ค.
*/
  • in์„ ์‚ฌ์šฉํ•ด์„œ ๋ฒ”์œ„ ๊ฐ’์„ ๋น„๊ตํ•  ์ˆ˜๋„ ์žˆ์Œ
  • if ๋ฌธ์˜ ๋น„๊ต ์—ฐ์‚ฐ์ž ์ค‘ <=, >= ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ

 

 

ํŒŒ๋ผ๋ฏธํ„ฐ ์—†๋Š” when ์‚ฌ์šฉํ•˜๊ธฐ

        var currentTime = 6
        when {
            currentTime == 5 -> {
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 5์‹œ ์ž…๋‹ˆ๋‹ค.")
            }
โ€‹
            currentTime > 5 -> {
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ ์‹œ๊ฐ€ ๋„˜์—ˆ์Šต๋‹ˆ๋‹ค.")
            }
โ€‹
            else -> {
                Log.d("when", "ํ˜„์žฌ ์‹œ๊ฐ„์€ 5์‹œ ์ด์ „์ž…๋‹ˆ๋‹ค.")
            }
        }

โ€‹
/** [๋กœ๊ทธ์บฃ ์ถœ๋ ฅ ๋‚ด์šฉ]
ํ˜„์žฌ ์‹œ๊ฐ„์€ 5์‹œ๊ฐ€ ๋„˜์—ˆ์Šต๋‹ˆ๋‹ค.
*/
  • when ๋‹ค์Œ์— ์˜ค๋Š” ๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•˜๊ณ  ๋งˆ์น˜ if ๋ฌธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ

 

 

if ๋ฌธ๊ณผ when ๋ฌธ์€ ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ?

์—ฐ๋„ ๋ฐ์ดํ„ฐ
 ... 2019, 2020, 2021, 2022, 2023 ... : ๋ฒ”์œ„๋ฅผ ํ•œ์ •ํ•  ์ˆ˜ ์—†๊ณ  ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์Œ
 
์š”์ผ ๋ฐ์ดํ„ฐ
์›”, ํ™”, ์ˆ˜, ๋ชฉ, ๊ธˆ, ํ† , ์ผ: ๊ฐ’์„ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐœ์ˆ˜๊ฐ€ 7๊ฐœ๋กœ ํ•œ์ •๋จ

 

  • ์—ฐ๋„ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ๋ฒ”์œ„๊ฐ€ ๋„“๊ณ  ๊ฐ’์„ ํŠน์ •ํ•  ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ์—๋Š” if ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•จ
  • ์š”์ผ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ 7๊ฐœ๋กœ ๋ฒ”์œ„๊ฐ€ ์ œํ•œ๋˜๊ณ  ๊ฐ’๋„ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” when ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•จ

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T