이전 글에서 값을 받기만하고 저장해두지 않으면 값이 날라가 버리는 것을 알았다. 그래서 이번 글에서는 변수에 대해서 알아보도록 한다. 예제 코드 fun main(args: Array):Unit { var total:Int total = 0 val a:Int = 95 + 9 + 15 - 3 println(a) val b:Int = 41 + 77 + a println(b) total = a + b println(total) } 116 234 350 Process finished with exit code 0 3: 코틀린에서는 변수를 선언할 때 var 키워드를 사용해서 변수를 선언한다. 코드에서 var total:Int의 경우 var는 변수라는 것을 말하며, total은 변수명, Int는 타입을 말한다. 4:..
이번 글에서는 코틀린에서 리터럴, 연산자, 표현식의 개념에 대해서 알아봅니다. 😁 예제 코드 fun main(args:Array):Unit { 53 + 62 - 126 // 리터럴, 연산자 } //출력 결과 Frocess finished with exit code 0 53, 62, 126 은 숫자 그대로 이기 때문에 리터럴 이라고 하며, + 또는 - 등은 연산자라고 한다. 최종 계산값은 -11로 나타내어 지는데, 이렇게 하나의 값으로 수렴하는 수식 덩어리를 표현식(Expression) 이라고 합니다. 위 코드는 실행은 되지만 출력결과는 아무것도 없다. 출력을 통해 확인하고 싶으면 println() 등의 함수를 사용하면된다. fun main(args:Array):Unit { println(53 + 62 -..
오늘부터 안드로이드 어플리케이션(앱) 개발을 목적으로 코틀린 언어를 학습하고자한다. 😀 새로운 언어를 시작하면서 가장 먼저하는 Hello world!(헬로월드)를 출력해보는 방법을 알아보자! Kotlin print Hello world fun main(args: Array): Unit { println("Hello, World!") } 결과 : Hello, world! 먼저 보이는 fun이란 function의 약자로 함수를 뜻한다. 보통 C에서는 반환타입+함수명...(void main()), 파이썬에서는 def main: 이런식으로 하는 것에 반면, 코틀린에서는 fun으로 함수의 시작을 알리는 것 같다. 🤔 fun 다음에 오는 main은 당연히 함수명이된다. 또 main 함수는 엔트리 함수로 프로그램의 ..
190730 - 4 - 클래스 base : 부모 클래스 sealed : 상속 불가능 확장 매서드 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MyExten; namespace MyExten { public static class IntExtension { public static int Square(this int myInt) { return myInt * myInt; } public static int Power(this int myInt, int exponent) { int result = myInt; for (int i = 1; i
190730 - 3 - 매소드 pass by reference static void Swap(ref int a, ref int b) { int temp = b; b = a; a = temp; } static void Main(string[] args) { int x = 3; int y = 4; Console.WriteLine("x:{0}, y:{1}", x, y); Swap(ref x, ref y); Console.WriteLine("x:{0}, y:{1}", x, y); } 가변길이 매개변수 params : 매개변수의 형식은 같으나 개수가 달라질 수 있는 경우 유용하다. static int Sum(params int[] args) { Console.Write("Summing... "); int sum ..
190730 - 2 - 흐름제어 C# switch문은 정수형식과 문자열 형식 두 가지를 지원한다. 정수와 문자열 형식 외에도 데이터 형식을 조건으로 사용할 수 있다. (C# 7.0 이상) static void Main(string[] args) { object obj = 123; // boxing switch (obj) { case int i: // 데이터 형식 사용시, 형식 옆에 식별자를 붙여주어야함. (case절 내부에서 사용가능) Console.WriteLine("int:"+i); break; case float f: Console.WriteLine("float:" + f); break; default: break; } } int:123 switch static void Main(string[] a..
190730 - 1 - 연산자 Null 병합 연산자 static void Main(string[] args) { //Console.WriteLine("HELLO C#"); //int a = 12; //object b = (object)a; // boxing //int c = (int)b; //unboxing int? a = null; Console.WriteLine($"{a ?? 0}"); a = 99; Console.WriteLine($"{a ?? 0}"); } 0 99 static void Main(string[] args) { int? num = null; Console.WriteLine($"{num ?? 0}"); num = 99; Console.WriteLine($"{num ?? 0 }"); s..
190729 - 2 - 흐름제어 foreach 사용예시 static void Main(string[] args) { int[] arr = new int[] { 1995,2015,2019,2020 }; foreach (var a in arr.Select((value, index) => new { Value = value, Index = index })) { Console.WriteLine("[{0}]:{1}", a.Index, a.Value); } }
190729 - 1 - 데이터 보관하기2 Decimal 형식은 double 형식보다 정밀도가 높은 형식이다. (숫자 뒤에 m을 붙인다.) C#의 모든 최고 조상은 Object 박싱과 언박싱 : 예시로 Object 형식에 값 형식의 데이터를 할당할 경우 Object형식은 기본적으로 Heap에 메모리가 할당되므로 값 형식을 힙에 할당하기위한 박싱기능을 제공한다. 박싱을 통해 힙에 저장한다. 이후 박싱되어 있는 데이터를 다시 값형식으로 얻어오는 것을 언박싱 이라고한다. static void Main(string[] args) { int a = 123; object b = (object)a; // a의 담긴 값을 박싱해서 힙에 저장 int c = (int)b; // b에 담긴 값을 언박싱해서 스택에 저장 Con..
190726 - 1 - 데이터 보관하기 using System; namespace SignedUnsigned { class MainApp { static void Main(string[] args) { byte a = 255; sbyte b = (sbyte)a; Console.WriteLine(a); Console.WriteLine(b); } } } 255 -1 계속하려면 아무 키나 누르십시오 . . . 2의 보수법을 사용하기 때문에 위와 같이 출력된다.