일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- c#
- Kotlin
- 함수
- Javascript
- Win32
- tipssoft
- 지식나눔강좌
- Programming
- 리뷰
- VS ERROR
- Direct2D
- 포인터
- 백준
- 티스토리
- c++
- 알고리즘
- Tips강좌
- doit코틀린프로그래밍
- 김성엽
- 문법
- Desktop
- Windows
- c
- 이지스퍼블리싱
- Tips프로그래밍강좌
- 프로그래밍
- Visual Studio
- 배열
- 연산자
- CS
- Yesterday
- Today
- Total
목록DEV (265)
F.R.I.D.A.Y.
함수 파트에서 떨어트리고 지금 나온 인라인&익명 함수입니다. 두 문법은 사실 함수 파트를 다룰 때 이어서 함께 작성해도 되지 않았을까 싶은 생각이 듭니다. 이미 지나가버린 걸 어떻게 하겠어요? 시작합니다. 함수의 준비 우리가 특정 작업을 한다고 했을 때, 사전 작업으로 무엇을 할까요? 먼저 작업에 필요한 물건을 가져오거나, 환경을 조성하겠죠. 제가 블로그에 글을 쓰기 위해 컴퓨터를 켜고 로그인을 하는 것처럼 말이죠. 우리 프로그램도 각 작업을 하기 위해서는 사전 작업이 필요합니다. 프로그램은 거대한 하나의 구조물이라 볼 수 있습니다. 이 거대한 구조물을 하나하나 쪼갠 것이 함수죠. 스택 작업 함수 파트에서 봤지만 함수에는 인자를 넘겨줄 수 있습니다. 이렇게 인자로 전달된 값들은 매개 변수의 값이 되는데요..
우리가 살면서 목돈을 마련하는 이유는 무엇일까요? 미래를 예측할 수 없기 때문에. 즉, 만일의 상황이 발생했을 때 이를 대비하기 위해 목돈을 마련해둡니다. 프로그램에서도 이렇게 목돈과 같은 문법이 존재합니다. 이번 시간에는 프로그램에서 갑작스럽게 발생할 수 있는 오류를 대비하는 예외 처리를 배워봅니다. 문제 이해하기 0으로 나누기 사용자로부터 두 수 A와 B를 받아서 A/B의 결과를 출력하는 프로그램을 만든다고 생각해보겠습니다. fun main(args:Array){ var a:Int var b:Int print("A 값 입력: ") a = readLine()!!.toInt() print("B 값 입력: ") b = readLine()!!.toInt() println("A / B = ${a/b}") } ..
책에서는 영역입니다. 책은 람다식(Lambda expression), 인라인 함수(inline function) 등 구성에 대해서는 이미 나왔습니다. 프로그램을 처음 배운다면 람다식이나 인라인 함수 등은 솔직히 어려울 수 있습니다. 그래서 후순위로 미뤄두고 기본적인 문법 사항이 모두 포스트 된 다음에 글을 쓰려고 합니다. 그래서 return 키워드를 이용한 제어는 다른 포스트에서 후술 하겠습니다. 흐름 제어하기 이전 시간에 반복문에 대해 알아봤습니다. 이 문단에서는 반복문의 흐름을 제어하는 방법을 알아볼 것입니다. break 코틀린에서는 break라는 키워드가 존재합니다. 먼저 break란 단어의 의미를 알아보겠습니다. 반복문이라는 흐름을 깨버리는 것이 break라고 생각할 수 있습니다. 실제로도 그렇게..
이전 시간에 for 구문에 대해 알아봤습니다. 이번엔 while, do-while 반복문에 대해 알아보겠습니다. while 구문 사람마다 성향 차이가 있듯이 코드를 작성하는 사람마다 선호하는 반복문이 있습니다. 그래서 여러 반복문을 제공하는 것이겠죠. 그런데 무한 반복을 하는 경우에는 while을 사용하곤 합니다. 그런데 코틀린에서는 for 반복문과 while 반복문이 서로 완벽히 하는 일이 다른 것 같네요. for 반복문이 범위를 정해서 하도록 강제한다면, while 반복문의 경우에는 조건식(평가식)이 참(true)인 경우에만 반복하도록 합니다. 구조 코틀린 while 구문의 구조는 아래와 같습니다. while(expression){ //commands } 간단히 소개한 것처럼 expression을 평..
만일 100개의 정보를 일일이 확인하는 과정을 직접 손으로 작성해야 한다면, 어떻게 하실 건가요? 오늘은 분기 제어 구문과 함께 프로그램에서 양대 산맥으로 생각할 수 있는 반복문에 대해 알아봅니다. for 구문 많은 경우에서 사용하는 for 구문입니다. while, do-while 반복문에 비해 높은 사용 비중을 가지고 있습니다.[# 초기화, 종결, 증감 식이 한 줄에 표현되어있기 때문이라는 것이 우세합니다.] 코틀린에서는 아래처럼 for 구문을 구성할 수 있습니다. 구조 for(bar in (min)..(max)){ //commands } bar는 for 구문이 반복되며 증감하는 값을 가지는 변수입니다. 기존의 변수 선언 방식에서 사용하는 var를 for 반복문에서는 사용할 수 없습니다. 사용 실제 코..
분기 제어를 배우는 두 번째 시간입니다. C/C++ 언어[# 이하 C 계열] 등지에서는 switch-case 구문을 이용합니다. 이번 시간에 배울 when 구문은 switch-case 구문에 대응되는 코틀린의 문법이라고 볼 수 있습니다. when 언제를 뜻하는 단어 when은 코틀린 프로그래밍에서는 이전 시간에 배운 if 문 분기처럼 상태에 따라 실행할 코드를 달리하는 분기 제어를 할 때 사용합니다. 구조 when 문법의 구조는 아래와 같습니다. when(expression){ (comparer) -> commands [(comparer) -> { commands }] [else -> commands] } when(expression) 어떤 데이터를 기준으로 할지를 정합니다. C 계열의 switch-ca..
이번 시간에는 입력에 따라 프로그램이 하는 작업을 선택(분기)할 수 있는 if문 대해 알아봅니다. 이 조건문을 배움으로써 이젠 조금 더 나은, 간단한 게임[# 이라 말하고 싶지만, 결국엔 퀴즈 정도에 가깝겠네요.]도 만들 수 있습니다. if문 프로그래밍을 배운 사람들에게, 가장 먼저 배운 분기문(조건문, 분기 제어문)을 물어보면 열에 아홉은 if문을 꼽을 겁니다. 기초가 되면서도 필수적인 문법입니다. 꼭 알고 넘어가세요. 선언 영단어 if를 번역하면 "만약"이 되겠죠. 프로그래밍에서도 똑같이 사용됩니다. if(조건){ // 수행 명령 }else if(조건){ // 수행 명령 }else{ // 수행 명령 } if문은 if-else, else if 구문이 함께 사용됩니다. 중요한 것은 앞선 조건식을 평가했을..
goorm ide에서 코틀린 프로젝트를 실행한다면 위 이미지처럼 오류 이미지가 발생할 수 있습니다. 해결 방법을 알아봅니다. 원인 알려진 원인으로는 프로그램의 진입점(엔트리 포인트, entry point)이 잘못 작성되었을 때가 있습니다. fun main(){ println("Hello world!") } 어떤 문서에서 본다면, 진입점을 이렇게 구성할 수 있다고 말합니다. main() 처럼 말이죠. 진입점을 이렇게 구성한 것에서 문제가 발생한 것입니다. 코틀린의 엔트리 포인트에서 위 코드처럼 작성해도 되는 것은 코틀린 1.3에서부터 입니다. goorm에서는 아쉽게도 1.3 버전이 아닌 그보다 낮은 1.1.2-5을 이용하고 있습니다. 1.3버전에서 제공하는 기능이니 goorm을 사용하는 우리는 이전 버전의..
이번 시간에는 함수에 대해 알아봅니다. 함수를 사용하는 순간부터 프로그램 작성 방식에 대한 패러다임이 바뀔 겁니다. 꼭 알고 넘어가길 바랍니다. 함수 우리는 살면서 많은 일을 합니다. 밥을 먹을 수도 있고, 일을 할 수도 있으며, 지금처럼 공부를 할 수도 있죠. 함수란 이처럼 특정 작업을 하는 일련의 동작을 한데 모아놓은 집합으로 생각할 수 있습니다. "밥을 먹다"로 예를 들어보겠습니다. 우리는 다른 사람들에게 "밥을 먹는다"라고 하지, 밥을 먹을 때 어떤 행위를 하는지 풀어서 설명하지는 않습니다. 밥을 먹는다 수저를 든다 수저로 밥을 푼다 입에 수저로 푼 밥을 넣는다 수저를 놓는다 젓가락을 집는다 반찬을 정한다 정한 반찬을 젓가락으로 집는다 젓가락으로 집은 반찬을 입에 넣는다 위 행동을 밥을 다 먹거나..
원래라면 04 자료형의 비교와 변환에서 함께 다루어야 했습니다. 삼중 등호를 이해하려면 말이죠. 그러나 처음 접하는 사람들은 이를 난해하게 생각할 수 있습니다. 그래서 조금 뒤인 이번 06번으로 미루었습니다. 세이프콜 값이 존재하지 않는 상태의 변수를 호출하면 컴파일러는 오류를 토해내고 컴파일을 중단합니다. 위와 같이 null값[# 이처럼 값이 존재하지 않는 상태를 프로그램에서는 null이라고 명명했습니다]을 가진 변수의 호출로 발생하는 NullPointerException문제(NPE 문제)는 많은 개발자들을 골머리 앓게 합니다. 그래서 코틀린은 이 문제를 해결할 수 있도록 세이프콜이란 문법이 존재합니다. 변수 선언 세이프콜을 사용할 때는 세이프콜이 가능한 변수를 선언해야 합니다. 세이프콜이 가능한 변수..