티스토리 뷰
////////////////////////////////////////////
//변수 & 상수
////////////////////////////////////////////
//var & let을 사용하여 변수, 상수 지정함. 타입은 자동으로 저장되는 값에서 지정이됨.
var variable = 100 //변수선언 키워드 var
let literal = 100 //상수선언 키워드 let
var str = "Hello, playground"
var num = Int() //빈 int 선언. //비어있는 변수를 저장하려면 무조건 :콜론을 사용하여 형을 선택해줘여함
var numm:Int //빈 int 선언.
//Int, Double, Float, Bool, String 등등 타입을 지정해주면됨.
num = 50
numm = 100
var array = [1,2,3,4,5]
array[0]
array[1]
array[2]
////////////////////////////////////////////
//조건문
////////////////////////////////////////////
import Foundation
Date() //Foundation 모듈안에 들어있는 Date클래스
let date = Date();
let current = Calendar.current
let hour = current.component(.hour, from: date); //date 변수의 hour를 추출
let month = current.component(.month, from: date);
if hour < 12 {
print("오전입니다.")
}
else {
print("오후입니다.")
}
//Switch
let weekDay = current.component(.weekday, from: date)
switch weekDay {
case 1:
print("일요일입니다.")
break //break 생략가능
case 2:
print("월요일입니다.")
case 3:
print("화요일입니다.")
case 4:
print("수요일입니다.")
case 5:
print("목요일입니다.")
case 6:
print("금요일입니다.")
case 7:
print("토요일입니다.")
default: //default는 무조건 써야함.
print("아무날도아닙니다..")
}
switch weekDay {
case 1,7:
print("주말입니다.")
case 2,3,4,5,6:
print("평일입니다. ")
default:
print("아무날도아닙니다.")
}
////////////////////////////////////////////
//반복문
////////////////////////////////////////////
//while은 조건에 집착할떄
//for는 횟수에 집착할때 많이 사용.
var i = 0
while i < 100 {
print("hello!!!")
i = i + 1
}
for i in 1...10 { //...은 endnum도 포함함.
print("\(i)번째입니다!!") //1~10 출력
}
for i in 1..<10 { //..<은 endum을 포함하지않음.
print("\(i)번째입니다!!") //1~9 출력
}
////////////////////////////////////////////
//배열
////////////////////////////////////////////
var intArray = [1,1,2,3,5,8,13]
var stringArray = ["가", "나", "다", "라", "마"]
//빈 배열 생성방법 두가지
var arrayA:[String] = []
var arrayB = [Int]()
//배열의 length
intArray.count //count 메소드 사용
//반복문을 사용한 배열접근
for i in 0..<intArray.count {
print(intArray[i])
}
for i in (0..<intArray.count).reversed() { //반복문 역순
print(intArray[i])
}
for element in stringArray { //배열을 더욱 편하게 반복 접근하는 "for element in array" 구문
print (element)
}
//배열의 다양한 메소드
intArray.insert(10, at: 0) //0번째 위치에 10을 저장.
intArray.sort()
intArray.sort(by: >) //내림차순 정렬 return void (파괴적 메소드, 자기자신(배열값)을 바꿈.)
intArray.sort(by: <) //오름차순 정렬
var temp =
intArray.sorted(by: >) //내림차순 정렬된 배열을 리턴하여 temp에 저장. (비파괴적 메소드, 자기자신을 바꾸지 않음.)
intArray //위에 sorted로 정렬을 했지만, 오른쪽의 결과와 같이 intArray의 정렬은 바뀌지 않았음.
intArray.remove(at: 0) //0번째 element를 배열에서 삭제, 또한 삭제한 element를 리턴함.
intArray.removeAll() //배열전체 삭제
////////////////////////////////////////////
// 딕셔너리
////////////////////////////////////////////
var dictionary = [
"임언석" : "010-9073-0000",
"홍길동" : "111-1111-1111"
]
dictionary["임언석"] //딕셔너리 element 접근
dictionary["홍길동"]
var dictionaryA:[String:Int] = [:] //빈 딕셔너리 만들기
var dictionaryB = [String:String]() //빈 딕셔너리 만드는 다른 방법
dictionaryA["사과"] = 100 //사과 key를 추가하고 값을 100으로 저장
dictionaryA["배"] = 200
dictionaryA["바나나"] = 100
for (key, element) in dictionaryA { //딕셔너리를 편하게 반복접근
key
element
print("\(key) is \(element) ")
} //주의 사항: 딕셔너리의 반복문은 순서가 랜덤이다!! (인덱스순으로 저장되지않고 성능에 따라 랜덤순으로 저장됨)
dictionaryA.removeValue(forKey: "사과") // 사과 지우기.
////////////////////////////////////////////
// 튜플
////////////////////////////////////////////
var tupleA = ("가", 10, "구름", true) //자료형이 썪일 수 있음
tupleA.0
tupleA.1
tupleA.2
tupleA.3
var tupleB = (
postcode: 10000,
address: "서울특별시 강남구"
)
tupleB.postcode
tupleB.address
tupleB.0
tupleB.1
//스위프트의 튜블은 변수로 사용가능 (값을 바꿀 수 있음)
var (aa,bb,cc) = (10,20,30)
aa
bb
cc
//변수나 상수를 선언할때, 한번에 여러개를 선언할 수 있음.
let tupleC = (1,2,3,4)
let (a,b,c,d) = tupleC //tupleC의 값 모두를 a,b,c,d에 저장
let (_,f,g,_) = tupleC //tupleC의 1,2element의 값만 f,g에 저장. 0,4의 값은 저장안함.
////////////////////////////////////////////
//함수
////////////////////////////////////////////
func showHello() {
print("Hello world!!!")
}
func printPerson(name: String, address: String) {
print("안녕하세요")
print("저의 이름은 \(name)입니다.")
print("저의 집은 \(address)에 있습니다.")
}
printPerson(name: "이온시옥", address: "서울특별시 관악구")
printPerson(name: "홍길동", address: "강원도 철원")
func calcBMI(name: String, height: Double, weight: Double) -> Double {
let heightM = height/100.0
let bmi:Double = weight / (heightM * heightM);
return bmi
}
let myBMI = calcBMI(name: "임언석", height: 178, weight: 75)
////////////////////////////////////////////
//옵셔널 자료형
////////////////////////////////////////////
var aaa:Int = 273
//aaa = nil //기본적으로 nil을 넣을 수 없음!!
var bbb:Int? = Int(53) //bbb == 53
var ccc:Int? = Int("안녕하세요") //ccc == nil
//자료형 뒤에 ?를 붙으면 옵셔널 자료형, ?를 붙이는 것을 "랩"이라고 함.
//옵셔널 자료형(?로 할당된 자료형)에 !를 붙이게되면 일반형으로 변환이 됨
var ddd = bbb! //!를 붙이는 것을 "강제 언래핑"
//강제 언래핑과 묵시저
var dic = [
"A" : "value A",
"B" : "value B",
"C" : "value C"
]
let dicElementA = dic["A"] //A 키의 value를 저장
dic["asdasdasdasd"] //딕셔너리에 없는 키면 nil을 출력
//강제적인 방법
dic["A"]! + dic["B"]! //딕셔니리의 값을 더하기위해서는 !(강제 언래핑 == 암묵적인 언램)
//if let을 사용한 부드러운? 방법
if let keyA = dic["A"], let keyB = dic["B"] { //if let을 사용한 정말로 nil이 아닌지 확인하고 사용하는 방법
//또한 쉼표를 연결해서 조건문 한번만 사용할 수 있음!!
keyA + keyB
}
////////////////////////////////////////////
//클래스
////////////////////////////////////////////
//클래스 == 속성(데이터) + 메서드(기능)
//학생 클래스 생성.
class Student {
//속성(데이터)
private var math:Int = 0;
private var english:Int = 0;
private var science:Int = 0;
private var korean:Int = 0;
//생성자 (init)
init(math:Int, english:Int, science:Int, korean:Int) {
self.math = math
self.english = english
self.science = science
self.korean = korean
}
//메서드(기능)
func getAverage() -> Double {
return Double(math + english + science + korean) / 4;
}
//private & require & public func & variable
}
var student = Student(math: 99, english: 90, science: 80, korean:88) //생성자로 파라미터를 넘김.
let agverage = student.getAverage();//stduent 인스턴스의 getAverage 메소드 실행.
/*다른 프로그래밍과 다른점
1. this가 아닌 math
2. 생성자를 사용할 때는 init() {}
3. 객체를 생성할때 new를 사용하지 않음!!
*/
import UIKit
let mySwitch = UISwitch() //스위치 생성.
mySwitch.isOn = true //스위치를 켬.
mySwitch.onTintColor = UIColor.brown //틴트색상을 브라운으로 설정.
////////////////////////////////////////////
// 디자인
////////////////////////////////////////////
import UIKit //UIKit 레이블, 버튼, 스위치, 슬라이드, 텍스트뷰 등등 아이폰의 UI요소들이 모두 모여있는 키트
//동적으로 UI요소 생성하기 (정적으로 생성하려면 스토리보드사용!)
let label = UILabel(frame: CGRect(x:16, y:20, width: 300, height:24))
label.text = "Hello World!!!"
label.textAlignment = NSTextAlignment.center //중앙에 배치
label.textAlignment = .right //오론쪽에 배치, (오브젝트 생략)
label.textAlignment = .center //중앙에 배치, (오브젝트 생략)
label.textColor = UIColor.blue
'알고리즘' 카테고리의 다른 글
백준 10828번 스택 구현 (0) | 2019.01.03 |
---|---|
iOS 가위바위보 어플 (0) | 2018.12.08 |
Android Project - LottoHelper (0) | 2018.12.06 |
Java 코드 정리 (Serialization, File I/O, Networking and Thread) (0) | 2018.12.06 |
Java Programming 3 (0) | 2018.11.22 |
- Total
- Today
- Yesterday
- NAS
- 이클립스
- 자바
- 파이썬
- python
- 슈어
- C++
- 개발
- 맥북
- 코드업
- 코딩
- 알고리즘
- 우분투
- Java
- 모바일 프로그래밍
- 맥
- se846
- 프로그래밍
- 환경오염
- 아키티오
- 문제
- 카카오톡
- CodeUp
- egpu
- 외장그래픽
- 백준
- 서버
- 산업화
- Vega64
- eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |