3월, 2023의 게시물 표시

Kotlin Break, Return, Continue

Kotlin break, return, continue  각 종 종료문에 대해서 알아보자. return  현재 수행 중인 함수를 종료하는 구문이다.  함수에 수행항 코드가 남아 있더라도 그 즉시 종료하고 이후의 코드를 수행하지 않는다. fun main () { val r1 = testFun1 ( 100 ) println ( "r1 : $ r1 " ) } fun testFun1 (a1:Int) : Int { println ( "tesetfun1" ) return a1 + 100 } return 의 값을 가지고 원래 호출한 함수로 돌아간다. fun main () { val r1 = testFun1 ( 0 ) println ( "r1 : $ r1 " ) } fun testFun1 (a1:Int) : Int { println ( "tesetfun1" ) if (a1 == 0 ) { return - 1 } println ( "a1 이 0 인 경우 이 부분이 수행되지 않는다 " ) return 100 / a1 } return 이 수행 되면, return 이후의 코드는 수행되지 않는다. 값을 되돌려 주겠다라는 뜻보다는 해당 코드로 다시 돌아가겠다는 뜻으로 이해하는게 좋다. break  가장 가까운 반복문을 중단한다.   반복 횟수가 남아 있더라도 반복을 중단한다. for (i in 1 .. 10 ) { if ( i > 5 ) { break } println ( "item $ i " ) } >> item 1 item 2 item 3 item 4 item 5 continue  continue를 만나면 아래 코드를 수행하지 않고 다음 반복으로 넘어간다. for (i in 1 .. 10 ) { if ( i %...

Kotlin 반복문

Kotlin 반복문  반복문은 코드의 일부분을 반복하고자 할 때 사용한다. for, while, do while 을 이용한다. For 반복문  범위 객체를 이용하여 For 반복문을 사용 할 수 있다.   val a1 = 1 .. 10 for ( item in a1) { println ( "a1: $ item " ) } >> a1: 1 a1: 2 a1: 3 a1: 4 a1: 5 a1: 6 a1: 7 a1: 8 a1: 9 a1: 10 step 을 이용해서 2씩 증가하는 범위를 생성 할 수 있다. val a1 = 1 .. 10 step 2 for ( item in a1) { println ( "a1: $ item " ) } >> a1: 1 a1: 3 a1: 5 a1: 7 a1: 9  역순으로도 가능하다. downTo 명령을 사용해야 한다. 10에서 역순으로 1으로 까지 1씩 감소하는 범위를 가진다. // val a1 = 10..1 // 해당 변수는 10 보다 크고 1 보다 작은 수를 의미하므로 아무런 값을 가지고 있지 않다 . val a1 = 10 downTo 1 for ( item in a1) { println ( "a1: $ item " ) } >> a1: 10 a1: 9 a1: 8 a1: 7 a1: 6 a1: 5 a1: 4 a1: 3 a1: 2 a1: 1 While 반복문  주어진 조건이 만족할 경우 반복되는 반복문이다. var a = 0 while (a < 10 ) { println ( "a : $ a " ) a++ } >> a : 0 a : 1 a : 2 a : 3 a : 4 a : 5 a : 6 a : 7 a : 8 a : 9 Do - While 반복문  코드를 먼저 수행 후 조건문을 수행한다. 조건문이 처음부터 거짓이더라도 코드는 한번은 수행한다. var a = 0 do { printl...

Kotlin When

Kotlin when  when 은 Java 에서의 switch case 와 비슷하다. 하지만, 수식이나 값의 결과에 따라 수행될 부분을 결정하게 되며, 자바와 다르게 정수 뿐만 아니라, 타입의 값을 비교할 수 있다. when val a1 = 1 when (a1) { 1 -> println ( "a1 은 1 입니다 ." ) 2 -> println ( "a1 은 2 입니다 ." ) 3 -> println ( "a1 은 3 입니다 ." ) } 여러 줄 일 경우 {} 으로 묶어 준다. val a1 = 1 when (a1) { 1 -> println ( "a1 은 1 입니다 ." ) 2 -> { println ( " 여러 줄 일 경우 " ) println ( "a1 은 2 입니다 ." ) } 3 -> println ( "a1 은 3 입니다 ." ) } 조건이 모두 아닐때는 else 를 사용한다. val a1 = 1 when (a1) { 1 -> println ( "a1 은 1 입니다 ." ) 2 -> { println ( " 여러 줄 일 경우 " ) println ( "a1 은 2 입니다 ." ) } 3 -> println ( "a1 은 3 입니다 ." ) else -> println ( "a1 은 1,2,3 이 아닙니다 ." ) }  조건이 여러개일 경우에 or 연산으로 "," 를 사용한다. val a1 = 3 when (a1) { 1 , 2 -> println ( "a1 은 1 이거나 , 2 입니...

Kotlin 제어문

Kotlin 제어문  프로그램 코드는 위에서 아래로 흘러간다. IF 문  주어진 조건에 따라 작성된 코드 수행 여부를 결정하는 구문. 위에서 아래로 흘러가는 코드의 흐름을 뛰어 넘거나 변경하려고 할 때 사용한다. val a1:int = 10 // 기본 IF 문 : IF 문의 조건식 ( 변수의 값 ) 이 true 인 경우에만 내부의 코드가 실행 된다 . if ( a == 10 ) { println ( "a1 은 10 입니다 ." ) } IF ELSE 문  // 기본 IF 문 : IF 문의 조건식 ( 변수의 값 ) 이 true 인 경우에만 내부의 코드가 실행 된다 . if ( a == 10 ) { println ( "a1 은 10 입니다 ." ) } else { // 조건식이 만족하지 않을 경우 수행 됨 . println ( "a1 은 10 이 아닙니다 ." ) } ELSE IF 문 // 기본 IF 문 : IF 문의 조건식 ( 변수의 값 ) 이 true 인 경우에만 내부의 코드가 실행 된다 . if ( a == 10 ) { println ( "a1 은 10 입니다 ." ) } else if ( a > 5 ) { // 조건식이 만족하지 않을 경우 조건을 다시 따짐 . println ( "a1 은 10 이 아니고 , 5 보다 큽니다 ." ) } &&  모든 조건을 만족함을 확인할 때 사용하는 연산자. 두 조건 모두 true 여야 true. if ( a == 10 && b == 20 ) { println ( "a 은 10 이고 , b 는 20 입니다 ." ) } ||  주어진 조건 중 하나만 만족하면 될 경우 사용합니다. 둘 중 하나만 true 일 경우 true. if ( a == 10 || b == 20 ) { println ( ...

Kotlin 연산자

Kotlin 연산자 단항 연산자 +a : 양수 처리 ( 양수 -> 양수, 음수 -> 음수) 음수를 다시 양수로 바꿔주는것은 아님. 그냥 쓰는것과 동일하며 의미가 없음. - 값에 대해서 양수로 변환되는게 아니므로 주의하여 사용해야 한다. -a : 음수 처리 ( 양수 -> 음수, 음수 -> 양수) 부호를 반대로 해준다. !a : 논리형 변수에서의 true -> false, false -> true 로 변환됨 var a1:Int = 100 println (!a1)    ! 논리형 연산자 변환 기호는, 일반 변수 (Int) 에 사용할 수 없으며, 아래와 같은 에러로 실행이 되지 않는다.   ! 는 논리형 타입 (Boolean) 에만 사용이 가능하다. Kotlin: Unresolved reference: ! 증감 연산자  b = a++ : b =a ; a = a + 1 b = a-- : b = a ; a = a - 1 b = ++a  : a = a + 1 ; b = a b = --a  : a = a - 1 ; b = a 증강 연산자 ++, -- 가 앞에 붙어 있느나, 뒤에 붙어 있느냐는 a 변수의 값 자체에는 변화가 없으나, 대입 순서가 위와 같이 차이가 나게 된다.  ++, -- 가 앞에 붙어 있을 경우, 변수를 먼저 대입한 뒤에 증감하게 되고, 뒤에 붙어 있을 경우 변수를 먼저 증감한뒤에 대입하게 된다. 산술 연산자  a + b : 더하기  a - b : 빼기  a * b : 곱하기  a / b : 나누기   a % b : 모듈러 , 나머지를 구한다.  a .. b : 범위를 구한다.   범위 연산 IntRange : 10 부터 20 까지의 범위를 가지는 객체를 생성한다. 출력시에는 단순히 10..20 이라고 출력하지만, 실제로는 10 부터 20사이의 모든 int...

Kotlin 함수 오버로딩, 지역 함수

Kotlin 함수 오버로딩 함수 오버로딩 fun main () { test1 () test1 ( 100 ) test1 ( 111.11 ) test1 ( 100 , 200 ) } fun test1 () { println ( " 매개변수 없음 " ) } fun test1 (a1:Int) { println ( " 매개변수 Int" ) } fun test1 (a1:Double) { println ( " 매개변수 Double" ) } fun test1 (a1:Int , a2:Int) { println ( " 매개변수 두개 " ) } 같은 이름의 함수여도, 매개변수의 타입, 매개변수의 갯수의 차이로 함수 오버라이딩이 가능하다. 지역 함수  함수내에 함수를 지정할 수 있으며, 해당 함수내에서만 사용이 가능하다. fun main () { test1 () } fun test1 () { println ( "test1 호출 " ) fun test2 () { println ( "test2 호출 " ) } test2() }  함수 내 지역 함수를 사용할 경우, 지역 함수의 선언이, 호출부보다 하위에 위치해야 한다. fun main () { test1 () } fun test1 () { println ( "test1 호출 " ) test2() fun test2 () { println ( "test2 호출 " ) } }  지역 함수의 선언 부보다, 호출 부가 위에 있을 경우, 하위 지역 함수를 찾을 수 없다는 오류가 발생하게 된다. Kotlin: Unresolved reference: test2  지역함수를 선언한 함수 밖에서 호출 할 경우도 역시 동일한 오류가 발생한다. fun main...

Kotlin 함수

Kotlin 함수  Java 에서는 클레스에 메서드를 만들어서 사용하지만, Kotlin 에서는 C 언어에서 사용하는 것처럼 함수를 사용해서 사용할 수 있다. 함수 문법 fun main () { test1 () } fun test1 () { println ( "TEST1 Call" ) }   main 이라는 함수는 kotlin 실행 시 실행 하도록 정해져있는 함수이다.  매개변수  함수를 호출할 때, 넘겨주는 값. 파라미티(parmeter) 라고도 부른다. fun main () { test1 ( 100 , 55.55 ) } fun test1 (a1:Int , a2:Double) { println ( "TEST1 Call" ) println ( "a1 $ a1 " ) println ( "a2 $ a2 " ) } fun main () { test1 ( 100 , 55.55 ) // 매개 변수의 변수 명을 지정할 경우 , 순서 변경 하는 것도 가능하다 . test1 ( a2 = 33.33 , a1 = 200 ) // 앞에서 부터 지정 되므로 , a2 값이 없어도 기본값이 지정된 함수라면 사용 가능하다 . test1 ( 200 ) // 기본값이 설정되어 있는 함수 에서는 , 앞 매개변수를 생략할 수도 있다 . test1 ( a2= 99.99 ) } fun test1 (a1:Int = 0 , a2:Double = 0.0 ) { println ( "TEST1 Call" ) println ( "a1 $ a1 " ) println ( "a2 $ a2 " ) }  함수 사용시에 변수명을 지정해 줄 경우, 인자의 순서를 변경이 가능하다.  함수 선언 시 기본값이 지정이 되어 있는 경우에, 매개변수를 지정해 주지 않아도 된다.  함수 선언 시 기...

Kotlin 자료형

Kotlin 자료형 Java에서는 변수를 명시할 때, 꼭 자료형을 표시해야 한다. Kotlin 에서는 모든 자료형을 객체의 Class Type 으로 처리한다. 해당 기억공간에 나타내는 자료의 형태라고 생각하면 좋다. 자료형  정수 : Long (8), Int (8), Short (2), Byte (1)  부호없는 정수 : ULong (8), UInt (4), UShort (2), UByte(1)  실수 : Double (8), Float (4)  논리 : Boolean (1)  문자 : Char (2)  문자열 - String 변수 선언 Kotlin 변수 선언 시, val, var 두 가지 키워드를 사용한다. var : 선언 이후 값을 다시 저장할 수 있다. val : 선언 이후 값을 다시 저장할 수 없다. (read-only) 타입을 생략이 가능하다. val a1:Int = 100 println ( "a1 : $ a1 " ) val a2 = 100 println ( "a2 : $ a2 " ) Kotlin 에서는 자료형을 생략하는 것을 추천한다. 반드시 필요할때 만 명시하도록 한다. var a3 = 100 val a4 = 100 println ( "a3 : $ a3 " ) println ( "a4 : $ a4 " ) // var 변수는 추후 변경이 가능하다 . a3 = 200 println ( "a3 : $ a3 " ) // val 변수는 추후 변경이 불가능하다 . Kotlin: Val cannot be reassigned a4 = 200 println ( "a4 : $ a4 " ) Kotlin: Val cannot be reassigned Val 변수에 추가적으로 변수를 저장할려고 할 때, 해당 에러가 발생한다. NULL 허용 변수  Java에서는 NPE (Null Point Exception)을 자주보게 되는데, Kotlin 에서는 NPE를 발생하지 ...

Kotlin 시작하기 : Intellij IDEA설치

Kotlin 시작하기 - Intellij IDEA 설치 JDK 최신 버전 설치  Kotlin을 시작하기 위해서는 JDK 가 필요하다. 오라클 계정이 필요하며, JDK 를 설치해보자. JAVA 6 이상 버젼이 필요하다.  현재 설치된 Java 버젼을 확인해보자.  cmd > java -version  java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode) 툴 설치 (JetBrain - Intellij IDEA)  - JetBrain : Intellij IDEA : 학습에서만 무료, 서비스 개발에서는 유료  - Android Studio  : 안드로이드 앱 무료 JetBrain - Intellij IDEA  다운로드 : https://www.jetbrains.com/idea/download/#section=windows Intellij IDEA 설치

Kotlin 기본 문법

Kotlin 기본 문법 Kotlin 주석  기본적으로 Java 와 동일하다.  // : 한줄 주석  /* ~~~ */ : 여러줄 주석   : kt 파일이 Java 파일로 변환될때 주석은 다 사라진다. * 자바 VS 코틀린  : java와 달리 코틀린에서는 여러줄 주석을 여러번 내포 시킬수 있다. /* 여러줄 주석 /* 주석안에 내포된 주석 */ */ 출력문  print() : 한줄 츨력하고 밑으로 내리지 않는다.  println() : 한줄 출력하고 밑으로 내린다.  값을 출력하고자 할때는 $ 를 사용한다. $을 사용해서 "" 안에서 변수 값을 사용할 수 있다. fun main () { println ( " 값 : " + 100 ) println ( " 값 : ${ 100 } " ) }   세미콜론  Kotlin 은 명령문 마지막의 세미콜론(;) 은 선택 사항이다. 붙여줘도 되고, 안 붙여줘도 된다.  한 줄에 여러 명령문을 작성할때는 세미콜론(;)을 붙여줘야 한다. println ( " 세미콜론 없음 " ) println ( " 세미콜론 없음 " ) ;  아래처럼 사용하는것은 안된다. println ( " 세미콜론 없음 " ) println( " 세미콜론 없음 " ) println( " 세미콜론 없음 " )  만약 이렇게 사용할 경우   C:\Users\M\IdeaProjects\Basic\src\main\kotlin\Main.kt:7:24 Kotlin: Unresolved reference: println   에러가 발생한다.  Kotlin 코드가 Java 코드로 변환될때, 자동으로 ; 이 붙어서 변환된다. 보통의 경우 Kotlin 에서는 세미콜론을 안 붙이고 사용한다.

Kotlin - Hello World 찍어보기

Kotlin - Hello World 찍어보기 개발환경  JDK 1.8  Intellij IDEA 2022.3.3 Project 생성  1) New Project 를 선택해서 Project 를 생성한다. New Project  1) 프로젝트 이름을 입력 한다.   2) Language 에 Kotlin 을 선택 후, Create 를 선택한다. Hello World  1) 자동으로 Main.kt 라는 코틀린 코드를 가지고 있는 Hello World 를 출력하는 코드가 작성된다.  2) main / kotlin / Main.kt 의 구조로 파일이 자동 생성된다. 실행  1) RUN -> RUN "Main.kt" 를 실행하면 컴파일 및 빌드가 수행된다.  2) 아래의  실행동구 창에 실행 결과가 나타난다.  3) Hello Kotlin Beginner! 로 수정해서 실행해 보았다. Java Bytecode 변환 및 Decompile to Java  Kotlin 코드는 JAVA ByteCode 로 변환이 가능하기 때문에, 해당 ByteCode를 다시 Decomplie 하면 다시 자바코드로 변환이 가능하다.    1) Tools -> Kotlin -> Show Kotlin Bytecode  2) Decompile  변환된 Java 코드를 살펴볼 수 있다.

Server's certificate is not trusted Andorid Sudio

이미지
  Andorid Sudio Server's certificate is not trusted 팝업 해결 법  File - Settings -  Tools - Server Certificates - 화명 상단에  Accept non-trusted certificates automatically Check!

Kotlin 리터럴

리터럴(literal) 컴퓨터 과학 분야에서 리터럴(literal)이란 소스 코드의 고정된 값을 나타내는 표기법이다. 거의 모든 프로그래밍 언어는 정수, 부동소수점 숫자, 문자열, 불린 자료형 과 같은 기본적인 값에 대한 표기법이 있다. 어떤 언어는 열거 타입이나, 배열, 자료형, 객체에 대한 표기법도 있다. 리터럴과 대조적으로, 고정된 값을 가질 수 있는 변수나 변경되지 않는 상수가 있다. 리터럴은 데이터(값) 그 자체를 뜻한다. 즉, 변수에 넣는 변하지 않는 데이터를 의미한다. 정수 리터럴  // 정수 리터럴 println ( 100 ) // 21 억 이상의 큰 정수에서는 L 을 붙여주지 않아도 된다 . // Java 에서는 L 을 붙여줘야 한다. println ( 1000000000 ) // 눈에 보기에는 _ 가 있지만 , 출력할때는 없는 것처럼 출력이된다 . println ( 100_000_000 ) 실수 리터럴      // . 을 통해서 실수임을 나타낸다 (8Byte)      println ( 11.11 )      // . 과 명시적인 실수임을 나타내는 F 를 적어준다 (4Byte)      println ( 22.22F ) 문자 리터럴  하나의 문자를 나타내기 위해서 ' ' (작은 따옴표) 를 사용한다.           println ( 'Z' )           println ( ' 하 ' ) 문자열 리터럴  문자열을 나타내기 위해서 "" (큰 따옴표) 를 사용한다.      println ( "Kotlin Android 개발 뿌시기 !!" ) RAW String 리터럴  RAW String 을 나타내기 위...

Kotlin 언어 소개

Kotlin 언어 소개 Java 대체 언어로 많은 주목을 받고 있다. 2017년 Google IO 행사에서 안드로이드 개발 공식 언어로 Kotlin 을 소개하였습니다. 구글에서 "GO" 언어를 만들어서 채택할려고 했으나, Java 의 쓰임새와 너무 달라서 Kotlin 으로 대체하였습니다. http://kotlinlang.org Kotlin 동작 원리 Kotlin 언어는 개발자를 위한 코드입니다. Java 는 JVM 위한 코드이고, C 는 실행을 위한 Binary Code를 위한것이였는데, Kotlin 은 개발자의 편의성을 위한 부분이 강조 되었다. Kotlin 은 컴파일 시점에서 Java , C , JavaScript 로 변환되어진다. 개발자는 어떤 프로젝트를 선택함에 따라서 코드의 결과물이 달라진다. 현재는 안드로이드 개발에서 Java 를 대신해서 사용하고 있다. Kotlin 언어 특징 Java 언어와 비교하여 매우 간단한 문법을 제공한다. NULL 안정성을 위해서 Null Point Exception 이 발생하지 않는다. 예외처리 ( Try - Catch ) 등을 강제하지 않는다. 객체지향, 함수형 프로그래밍 방식 모두 가능하다. Kotlin 개발 분야 Kotlin for Server Side Kotlin for Android Kotlin for JavaScript Kotlin for Native Kotlin for Data Science