전체 글 391

AND연산자 사용 - 이것 및(AND) 저것 확인하기

초반 AND연산자를 이용해서 연습해 본 코드 보석이 없을경우 공백으로 놓아야 되서 문제가 되지 않을까라는 생각이 들어서 어떻게 해야 공백이 생기지 않을까 고민을 겁나 해보았다... (다행히 공백을 두어도 실행은 되었다...) for i in 1 ... 7 { moveForward() if isOnGem && !isBlockedLeft { //보석이 있고, 왼쪽에 막혀있지 않을경우 collectGem() // 보석을 수집해라 }else if !isOnGem{ // **문제발생**보석이 없을경우 // 넣을것이 없어 공백으로 두었다. }else if isOnGem && isBlockedLeft { //보석이 있고 왼쪽이 벽으로 막혀있다면 collectGem() // 보석을 수집하고 turnRight() // ..

NOT의 소용돌이

for i in 1 ... 13 { // 13번 반복해라 if !isBlocked { // 만약 타일 한 개만큼 앞으로 갈 수 있다면 moveForward() // 앞으로 한칸가라 }else { // 아니면 turnLeft() // 왼쪽으로 돌고 moveForward() // 앞으로 한칸가라 } } toggleSwitch() //13번 반복 후 스위치를 눌러라 *else 말고 else if를 사용해도 돌아감 스위프트 플레이그라운드 Swift Playground 코딩배우기1 - NOT의 소용돌이

Not 연산자 사용하기

for i in 1 ... 4 { //4번 반복하세요 if isBlocked{ //벽에 막히면은 turnLeft() turnLeft() //반바퀴 돌아라 moveForward() moveForward() //두칸 앞으로가고 turnLeft() //왼쪽으로 돌아라 } moveForward() // 한칸 앞으로 가라 if isOnGem { // 보석이 있으면 먹어라 collectGem() } else if !isOnGem{ //보석이 없으면 왼쪽으로 돌고 앞으로 두칸 잼을 먹어라 turnLeft() moveForward() moveForward() collectGem() } }

의사 결정 트리

func solveRightSide(){ //solveRightSide 함수 collectGem() turnRight() moveForward() moveForward() moveForward() turnLeft() moveForward() collectGem() turnLeft() turnLeft() moveForward() turnRight() moveForward() moveForward() moveForward() turnRight() //요약하자면 우측가서 보석먹고 돌아오기 } func solveLeftSide(){ // solveLeftSide 함수 toggleSwitch() turnLeft() moveForward() collectGem() turnRight() turnRight() move..

조건식, 함수,루프로 코드짜기

func switchOrGem(){ //스위치누르고 보석모으는 함수 만들기 if isOnClosedSwitch { //스위치가 닫혀있으면 toggleSwitch() // 스위치를 눌러라 } else if isOnGem { //보석이 있으면 collectGem() //보석을 모아라 } } for i in 1 ... 2 { //2번동안 moveForward() //한칸 앞으로가기 switchOrGem() turnLeft() //왼쪽으로 돌기 } for i in 1 ... 3 { //3번동안 반복해라 j반복문 2번과 왼쪽돌기 for j in 1 ... 2 { //2번동안 반복해라 moveForward() switchOrGem() } turnLeft() //j반복문 2번 후 왼쪽돌기 } 벽에 닿기전에 기능이 있..

[playground] If문 활용1 (Swift)

func collectOrToogle(){ //collectOrToggle이라는 보석을 수집하고 닫힌 스위치를 여는 함수만듦 if isOnClosedSwitch { // 만약에 스위치가 닫혀있다면 toggleSwitch() // 스위치를 눌러라 } if isOnGem{ // 만약 보석이 있다면 collectGem() // 보석을 수집해라 } } for i in 1 ... 4{ //4번동안 반복문 앞으로한칸 + 보석수집, 스위치키기 moveForward() collectOrToggle() } turnLeft() // 왼쪽으로 돌기 for i in 1 ... 2 { //2번동안 반복문 앞으로한칸 + 보석수집, 스위치키기 moveForward() collectOrToggle() } turnLeft() for ..

13. 구조체

1.구조체란 - 스위프트 대부분 타입은 구조체로 이루어져 있습니다. - 구조체는 값(value)타입입니다. - 타입이름은 대문자 카멜케이스를 사용하여 정의합니다. 2. 구조체 문법 - 구조체 정의 : " struct" 키워드 사용 struct 이름{ /*구현부*/ } *구조체 프로퍼티 및 메서드 구현 *프로퍼티 - 인스턴스 변수, 어떤 타입 안에 들어가있는 변수를 생각하면됨 *메서드 - 구조체 안에 들어있는 함수, 어떤 타입 안에 들어가있는 함수를 생각하면 됨 struct Sample{ // 가변 프로퍼티(값 변경 가능) var mutableProperty: Int = 100 // 불변 프로퍼티(값 변경 불가능) let immutableProperty: Int = 100 // 타입 프로퍼티(static ..

12. 옵셔널 추출

1. 옵셔널 추출(Optional Unwrapping)이란 - 옵셔널에 들어있는 값을 사용하기 위해 꺼내오는 것 Int? 에 값이 있는지 없는지 물어보고 있으면 값을 꺼내오는거라고 생각하자 2. 옵셔널 방식 1. Optional Binding - nil 체크 + 안전한 추출 - 옵셔널의 값을 꺼내오는 방법 중 하나 2. 옵셔널 안에 값이 들어있는지 확인하고 값이 있으면 값을 꺼내옴 3. if - let 방식 사용 코드로 보기 func printName(_name: String){ print(name) } var myName: String? = nil //printName(myName) // 전달되는 값의 타입이 다르기 떄문에 컴파일 오류 발생 그래서 if-let 방식을 통해서 바인딩 가능 if let n..

11.옵셔널

1. 옵셔널이란 -값이 있을 수도, 없을 수도 있음을 표현 let optionalConstant: Int? = nil let someConstant: Int = nil ------> 옵셔널이 아닌 상수에 nil 값을 할당하려고 하면 컴파일 오류 발생 -nil이 할당 될 수 있는지 없는지 표현 코드로보기 //someOptionalParm에 nil이 할당 될 수 있다. func someFunction(someOptionalParam:Int?){ --->Int 타입 옵셔널 명시 //... } /// someOptionalParm에 nil이 할당 될 수 없다. fumc someFunction(someOptionalParam:Int){ ---->옵셔널이 명시되어 있지 않은 Int 타입 //... } someFun..

10. 반복문

* for -in * while * repeat - while 1. for - in 구문 - 기존 언어의 for -each 구문과 유사합니다. - Dictionary의 경우 이터레이션 아이템으로 튜플이 들어옵니다. for - in 구조 for item in items{ /* 실행 구문*/ } 코드로 보기 var integers = [1,2,3] //integers 타입에 Array 생성 let people = ["yagom":10, "eric":15, "mike": 12] //integers 타입에 Dictionary 생성 for integer in integers{ //for 뒤에 이터레이션(반복)으로 들어올 in 뒤에 이터레이션(반복)으로 돌 콜렉션타입 print(integer) } //Diction..