계획은 고객의 요구 사항을 이해하고 자신의 생각을 정리하며 응용 프로그램을 개발하는 동안 발생할 수 있는 문제를 예측하는 데 도움이 됩니다.
프로젝트 계획 중에 개발자는 Apex 코드 작성을 시작하기 전에 의사 코드를 작성합니다.
의사 코드는 프로그램이나 기능이 수행해야 하는 작업에 대한 상세하지만 읽을 수 있는 설명입니다.
프로그래밍 언어가 아닌 자연어로 작성되었습니다.
의사 코드를 사용하면 프로그래머가 아닌 사람이 제안된 코드가 응용 프로그램의 요구 사항을 충족하는지 확인하는 단계를 검토할 수 있습니다.
개발자는 별도의 문서, 화이트보드 또는 개발자 콘솔에 의사 코드를 작성합니다.
의사 코드 작성이 개발자가 응용 프로그램을 프로그래밍하는 방법에 대한 생각을 문서화하는 데 어떻게 도움이 되는지 알아보기 위해 의사 코드를 작성하여 친구를 위한 차 한 잔을 만들어 보겠습니다.
개발자 콘솔에서File|New|Apex Class.
지금 수업이 무엇인지 걱정하지 마십시오.고급 모듈에서 Apex 클래스에 대해 알아봅니다.지금은 이 파일을 텍스트 파일로 생각하십시오.
클래스 이름을 지정합니다Teatime.
클릭OK.
클래스 이름을 지정하면 새 클래스가 있는 창이 나타납니다.
기존 수업 위에 이 지침을 복사하여 붙여넣습니다.
Get Utensils and Ingredients Boil Water in a Tea Kettle Make Tea in Teapot Add Tea and Sugar to a Teacup Serve Tea to Friend
각 의사 코드 문(명령)은 작업을 명시해야 합니다.
로봇에게 이러한 지시를 내린다면 로봇이 각 단계를 올바르게 수행할 수 있다고 생각하십니까?
아마 그렇지 않을 것입니다.
로봇은 어떤 도구와 재료를 가져와야 하는지, 물을 끓이는 방법, 추가할 각 재료의 양을 알아야 합니다.
이 의사 코드는 더 자세한 정보가 필요합니다.
개발자 콘솔로 돌아갑니다.
기존 코드를 다음 코드로 바꿉니다.
Get Utensils and Ingredients Get Teacup Get Spoon Get Tea Kettle Get Teapot Get Tea Get Sugar Boil water in a Tea Kettle Fill Kettle with Water Switch Kettle On Wait for Kettle to Boil Make Tea in Teapot Put Tea in Teapot Put Boiling Water in Teapot Wait 2 Minutes Add Tea and Sugar to Teacup Pour Tea in Teacup Put 1 teaspoon of Sugar in Teacup Stir Tea in Teacup Serve Tea to a Friend
public class Teatime { }
의사 코드를 작성할 때 각 단계를 진행하고 모든 시나리오를 설명할 수 있도록 최대한 세분화하십시오.
예를 들어, 이 의사 코드는 주전자에 물을 채우라고 말합니다.
주전자가 이미 가득 차면 어떻게 합니까?로봇이 주전자에 물을 계속 채워야 합니까?주전자를 비워야 하나요?개발자처럼 생각할 때는 다양한 관점에서 생각하고 여러 가능성을 고려해야 합니다.
코드 주석
관리자로서 설명이 없는 사용자 정의 필드를 본 적이 있습니까?해당 필드에 매우 명확하고 설명적인 이름이 없으면 목적이 명확하지 않을 수 있습니다.코드에서 주석은 코드 블록(하나 이상의 코드 줄)의 목적을 설명합니다.주석은 개발자가 작성해야 할 코드, 기존 코드가 수행하는 작업 및 실패한 코드가 수행해야 하는 작업을 이해하는 데 도움이 됩니다.개발자는 코드 내에 주석을 삽입하지만 주석을 읽거나 실행하지 않도록 컴퓨터에 지시하는 특수 문자로 묶습니다.
코드를 주석 처리하는 두 가지 방법인 한 줄 주석과 여러 줄 주석을 살펴보겠습니다.
한 줄 주석 한 줄 주석은 두 개의 슬래시( // )로 시작합니다.컴퓨터 프로그램은 실행될 때 // 오른쪽에 있는 같은 줄의 문자를 무시합니다.
예시:
Integer i = 1; //This comment will be ignored when the code is run.
여러 줄 주석 여러 줄 주석은 슬래시 별표( /* )로 시작하고 별표 슬래시( */ )로 끝납니다.
예시:
Integer i = 1; /*This comment is ignored when the code runs*/
메모
여러 줄 주석에서 코드가 여러 줄에 걸쳐 있지만 모두 들여쓰기되어 있음을 눈치채셨나요?일관된 들여쓰기는 가독성을 향상시키며 중요한 모범 사례입니다.
Teatime 의사 코드를 주석으로 변환해 보겠습니다.코드 개발을 순조롭게 유지하려면 개요처럼 의사 코드를 작성하는 것이 좋습니다.
개발자 콘솔에서 의사 코드에 여러 줄 주석을 추가합니다.다음과 같이 보여야 합니다.
/*Get Utensils and Ingredients Get Teacup Get Spoon Get Tea Kettle Get Teapot Get Tea Get Sugar Boil water in a Tea Kettle Fill Kettle with Water Switch Kettle On Wait for Kettle to Boil Make Tea in Teapot Put Tea in Teapot Put Boiling Water in Teapot Wait 2 Minutes Add Tea and Sugar to Teacup Pour Tea in Teacup Put 1 teaspoon of Sugar in Teacup Stir Tea in Teacup Serve Tea to a Friend*/
public class Teatime { }
2.클릭 File |Save.
이 모듈에서는 Apex 코드를 작성할 때 모범 사례를 따르는 방법을 배웁니다.이것은 당신이 뛰어난 개발자가 되기 위한 기반을 마련할 것입니다.
이제 본격적으로 코딩을 시작해 보겠습니다.
Quiz
1. What is code?
A. Lines of instruction used to communicate with computers.
B.The language used to communicate with pets.
C.A pact between friends.
D.The rules for computers.
2What is the syntax to begin a multiline code comment?
A.//
B.#
C./*
D.{
개발자 콘솔에서 연습
학습 목표
이 단원을 완료하면 다음을 수행할 수 있습니다.
일반적인 데이터 유형을 나열합니다.
변수를 선언합니다.
디버그 문을 구성하고 그 결과를 설명합니다.
구문을 정의합니다.
지난 단원에서는 코드, 의사 코드 및 코드 주석에 대해 배웠습니다.그러나 한 가지는 확실합니다. 코드를 읽고 쓰는 방법을 배우고 싶다면 그것을 하는 것 외에는 아무 것도 없습니다.시작하겠습니다.
변수
변수를 데이터의 컨테이너로 생각하십시오.그 안에 무엇이 들어 있는지 설명하기 위해 이름을 지정할 수 있습니다.물리적으로 고유한 이름으로 레이블을 지정하고 컨테이너에 항목을 추가할 수 있습니다.컨테이너에 원하는 모든 것이 들어 있으면 필요할 때까지 컨테이너를 치울 수 있습니다.
변수는 임시 필드와도 유사합니다.필드와 마찬가지로 각 변수에는 이름이 있고 데이터 유형도 있습니다.코드가 실행될 때 해당 변수 이름은 코드를 해석하는 시스템인 컴파일러에 중요하지 않습니다.그러나 개발자가 코드를 업데이트하거나 수정하려고 할 때 의미 있는 변수 이름은 각 변수의 목적을 이해하는 데 드는 시간을 줄여줍니다.다음 예를 고려하십시오.
String f = 'Melissa';
f라는 변수의 목적은 명확하지 않습니다.모범 사례는 명확하고 설명이 포함된 변수 이름을 선택하는 것입니다. 예를 들면 다음과 같습니다.
String firstName = 'Melissa';
이름은 변수가 나타내는 것을 설명하지만 데이터 유형은 변수가 포함할 수 있는 것을 정의합니다.
공통 데이터 유형
데이터 형식설명 및 예
Integer
소수점이 없는 양수 또는 음수입니다.
Integer num = 12;
Decimal
소수점이 있는 양수 또는 음수입니다.
Decimal num = 12.22222;
String
작은따옴표로 묶인 일련의 문자입니다.여기에는 한 글자에서 문장까지의 짧은 텍스트가 포함될 수 있습니다.
String whatAmI = 'A String';
Boolean
일반적으로 true 또는 false입니다.Apex에서는 null(비어 있음)도 유효한 값입니다.부울은 일반적으로 확인란과 함께 사용됩니다.
Boolean doSomething = False;
ID (Salesforce ID)
모든 유효한 18자 Salesforce 레코드 ID.
Id contactId = '00300000003T2PGAA0';
Apex는 강력한 형식의 언어입니다. 즉, 변수를 선언(생성)할 때마다 데이터 형식, 이름 및 선택적으로 초기 값을 설정합니다.
이 예에서 Integer는 데이터 유형, i는 변수 이름, 2는 변수의 초기 값입니다.변수 이름은 원하는 대로 지정할 수 있습니다.가장 좋은 방법은 변수의 목적을 명확하게 전달하는 이름을 사용하여 다른 개발자가 쉽게 읽고 이해할 수 있도록 하는 것입니다.
변수를 초기화할 때(초기 값 할당) 할당하는 값은 변수의 데이터 유형과 일치해야 합니다.변수 선언문 내에서 값을 할당하지 않도록 선택하면 변수 값은 null입니다.
변수를 선언합시다.
1.개발자 콘솔에서Debug|Open Execute Anonymous Window.
Execute Anonymous는 코드를 저장하지 않고 실행합니다.애플리케이션에 코드를 추가하기 전에 짧은 코드 조각으로 실험할 수 있는 좋은 방법입니다.
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.창 하단에서디버그 전용확인란을선택합니다.흥미로운 점을 발견하셨나요?2행과 5행은 동일한 코드 행이지만 로그에서 다른 값을 생성합니다.이는 변수 값이 언제든지 변경될 수 있기 때문에 발생합니다.
여기서는 간단한 예를 사용하여 작업하고 있습니다. 코드의 두 지점에 있는 숟가락 수 값입니다.50줄의 코드를 실행하고 5개의 변수를 모니터링하는 경우 로그 세부 정보에서 값과 함께 각 변수의 이름을 보고 싶을 수 있습니다.
개발자는 연결을 사용하여 리터럴 텍스트와 변수 값을 + 기호로 연결합니다.디버그 문에서 정보를 연결하면 디버그 로그를 더 쉽게 읽고 이해할 수 있습니다.
두 개의 디버그 문에 numberOfSpoons 변수의 이름을 값과 함께 포함시켜 보겠습니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
Integer numberOfSpoons; System.debug('The variable numberOfSpoons is: ' + numberOfSpoons);
numberOfSpoons = 1; System.debug('The variable numberOfSpoons is: ' + numberOfSpoons);
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
이제 null과 1의 두 값이 numberOfSpoons 변수의 값이라는 것이 분명합니다.
Syntax
코드를 구성하는 방법에 대해 이 코드 샘플에서 무엇을 발견했습니까?프로그래밍 언어를 만들기 위해 텍스트와 구두점을 배열하는 방식을 구문이라고 합니다.다음은 Apex 코드에 대한 몇 가지 구문 규칙입니다.
Apex 문이 세미콜론으로 끝나는 것을 가장 먼저 눈치채셨을 것입니다.
String time;
복사마침표가 문장을 끝내는 것과 같은 방식으로 세미콜론은 Apex 문을 끝냅니다.명령문의 끝에서 세미콜론을 잊어버린 경우 친숙한 오류 메시지가 표시됩니다.
Apex 문자열은 작은따옴표를 사용하여 리터럴 텍스트를 주변 코드와 구분합니다.숫자 및 부울(true 또는 false) 값에는 따옴표가 필요하지 않습니다.
String time = 'It is Tea Time!'; Integer i = 2; Boolean b = false;
이제 변수, 데이터 유형 및 구문이 무엇인지 알았습니다.변수를 선언하고 값을 할당하는 방법을 배웠습니다.자신의 디버그 문을 만들고 디버그 로그에서 검토하는 연습을 했습니다.
Quiz
1. A variable named teaKettleFull is declared. Later in the code, you reference the teaKettleFull variable, but an error occurs. How should you change the variable declaration to ensure that the code executes without an error? Integer teaKettleFull = false;
A.Remove the ; after false.
B.Change Integer to Boolean.
C.Change false to 'false'.
D.Change Integer to String.
2. What is syntax?
A.The method developers use for planning.
B.The set of rules to prepare your taxes.
C.The process to convert instructions to machine code.
D.The arrangement of punctuation and text within code.
Collections 사용
학습 목표
이 단원을 완료하면 다음을 수행할 수 있습니다.
목록을 선언하고 초기화합니다.
목록에 항목을 추가하는 두 가지 방법을 설명하십시오.
Collections
collection은 여러 항목을 저장할 수 있는 변수 유형입니다.
우리의 차 예에서는 내부에 여러 개의 각설탕이 있는 설탕 그릇이 있습니다.설탕 그릇은 컬렉션으로 간주되며 각설탕은 해당 컬렉션에 저장된 항목입니다.
Apex 컬렉션에는 세 가지 유형(목록, 집합 및 지도)이 있지만 이 모듈에서는 목록에 중점을 둡니다.
기울기
Apex 목록은 쇼핑 목록과 같이 동일한 유형의 항목이 정렬된 그룹입니다.
차
설탕
꿀
우유
쇼핑 목록의 각 항목은 문자열이며 각 항목은 목록 내에서 위치를 가집니다.목록을 선언하려면 몇 가지가 필요합니다.목록 예약어, <> 문자 내의 데이터 유형(모든 항목은 동일한 데이터 유형이어야 함) 및 예약어 new를 사용합니다.이 문장의 끝에는 필수 괄호가 있습니다.
메모
예약어는 특별한 의미를 가지며 변수 이름으로 사용할 수 없는 프로그래밍 단어입니다.new, string, false, null 등과 같은 단어는 변수에 동일한 이름을 지정하려고 하면 구문 오류가 발생합니다.
Empty List 선언
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.//Declare the groceries list
//Declare the groceries list List<String> groceries = new List<String>();
//The output for this statement is an empty list, (). System.debug('Groceries Value: ' + groceries);
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
코드를 실행했을 때 출력이 ()임을 눈치챘을 것입니다.목록에 아무것도 추가하지 않았기 때문에 비어 있습니다.
groceries목록을 선언할 때항목을 추가할 준비가 된 단일 빈 공간을 만들었습니다.
설정된 크기로 목록 선언
목록의 길이를 정확히 알고 있다면 목록을 선언할 때 크기를 설정할 수 있습니다.다음과 같이 데이터 유형 뒤에 대괄호 [ ] 안에 크기를 포함하여 이를 수행합니다.
메모
Apex에서 목록을 선언하는 방법에는 여러 가지가 있습니다.이 예에서는목록 크기를 설정하기 위해배열 표기법을사용합니다.
이 코드는 식료품이라는 문자열 목록을 선언하고 크기를 4개의 문자열로 설정합니다.빈 식료품 목록은 다음과 같습니다.
항목의 순차 위치는 인덱스라고 하는 숫자입니다.인덱스는 항목을 참조하는 방법입니다.아마도 숫자 1부터 계산하는 법을 배웠을 것입니다.그러나 많은 프로그래밍 언어에서 계산은 숫자 0부터 시작합니다!이제 Apex 코드를 작성할 때 목록이 다음과 같이 표시됩니다.
차
설탕
꿀
우유
목록의 특정 항목을 가리키는 데 사용하는 인덱스는 차의 경우 인덱스 0, 설탕의 경우 인덱스 1, 꿀의 경우 인덱스 2 등입니다.
다음과 같이 색인(목록 내 위치)으로 목록의 특정 항목을 참조합니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
String[] groceries = new String[4]; System.debug('Initialized groceries: ' + groceries);
System.debug('Item 0: ' + groceries[0]);
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
목록의 첫 번째 항목 값이 null입니다.목록에 몇 가지 항목을 추가해 보겠습니다.
Initialize a List
목록을 초기화하는 것은 목록에 초기 값을 할당하는 것입니다.목록에 항목을 추가하는 방법에는 두 가지가 있습니다.
목록을 선언하고 초기화합니다.
//Sets the first item in the list to 'Tea' List<String> groceries = new List<String>{'Tea'};
빈 목록을 선언하고 나중에 값을 추가하십시오.
List<String> groceries = new List<String>(); groceries.add('Tea');
목록 선언 및 초기화
값으로 목록을 초기화하는 구문은 빈 목록을 선언하는 것과 유사합니다.차이점은 괄호(( ))를 사용하는 대신중괄호({ })를사용하여 값을 추가한다는 것입니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
//Declare the groceries list List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'};
//The output for this statement is Tea, Sugar, Honey, Milk System.debug('Groceries: ' + groceries);
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
빈 목록을 선언하고 나중에 값 추가
그러나 나중에 항목을 추가하려면 어떻게 해야 합니까?Apex는 목록으로 작업할 수 있는 방법을 제공합니다.add 메서드를 사용하여 식료품 목록에 식료품 항목을 추가해 보겠습니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
//Create the groceries list List<String> groceries = new List<String>();
//The output for this statement is null System.debug('Groceries: ' + groceries);
//Use the add method to add an element to the list groceries.add('Tea'); groceries.add('Sugar'); groceries.add('Honey'); groceries.add(2, 'Milk');
//The output for this statement is Tea, Sugar, Milk, Honey System.debug('Groceries: ' + groceries);
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
groceries와사이에 점(".")을add보셨나요?Apex는 점 표기법을 사용합니다.점 표기법에는 여러 가지 용도가 있습니다.8행에서add(Apex가 제공하는) 메소드를groceries목록에 점으로 연결하여 항목(Tea)을 목록에 추가합니다.
11행은 특정 인덱스(위치)에 항목을 삽입하여 목록에 항목을 추가하는 또 다른 방법을 보여줍니다.
Apex 코드로 계속 작업하면서 사용할 방법을 결정하는 방법을 배웁니다.그러나 이 단원에서 배우는 기본 사항은 시작하는 데 도움이 될 수 있습니다.
목록 이해하기
목록에 항목을 추가하는 다른 방법은 약간 다른 결과를 생성합니다.때로는 예상치 못한 결과.이 운동을 시도하십시오.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
String[] groceries = new String[4]; System.debug('Groceries: ' + groceries);
groceries.add(1, 'Honey'); System.debug('Added Honey in index 1: ' + groceries);
System.debug('Item 0: ' + groceries[0]);
선택열기 로그체크 박스를 클릭실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용 확인란을선택합니다.
Interesting results::
4행과 5행에 두 개의 문자열을 추가할 때 인덱스를 지정하지 않았기 때문에 Tea와 Sugar가 목록 끝에 추가되어 목록 크기가 4개 문자열에서 6개 문자열로 늘어났습니다.
8행에서 Honey에 대한 인덱스 1을 명시적으로 지정했는데 왜 Honey가 목록의 첫 번째 항목이 아닌가요?프로그래밍할 때 항상 1 대신 0부터 계산을 시작한다는 것을 기억하십시오. 11행에서 목록의 첫 번째 인덱스는 현재null값을포함하는 0입니다.
코드를 작성하는 것은 수학 문제를 푸는 것과 매우 유사합니다.
하나의 방정식이 있지만 한 가지를 수행하는 방법은 너무 많습니다.
이 단원에서는 Apex에서 목록으로 작업하는 방법이 두 가지 이상임을 배웠습니다.목록을 선언하든, 목록을 초기화하든, 목록의 특정 값을 참조하든, 수행 방법은 사용자의 선택입니다.너무 많은 옵션?걱정하지 마세요.Apex에 익숙해지면 다양한 방식으로 시도해 보면 어떤 방식이 어떤 상황에서 가장 잘 작동하는지 더 많이 이해하게 될 것입니다.
Quiz
1. What is the code necessary to create a new list named "sports" with three strings?
A.String[] sports = new String[3];
B.sports = new String[3];
C.new String[3] = String sports;
D.New String[] sports = String[3];
2. Which line of code refers to the item named Golf in this list initialization statement: List<String> sports = new List<String>{'Soccer', 'Baseball', 'Golf', 'Tennis'}; ?
A.sports[0];
B.sports[4];
C.sports[1];
D.sports[2];
Control Data Flow
학습 목표
이 단원을 완료하면 다음을 수행할 수 있습니다.
비교 연산자의 사용법을 나열하십시오.
switch 문과 if-else 문의 차이점을 설명합니다.
우리의 일상 생활에는 항상 결정해야 할 사항이 있습니다.나는 무엇을 입는가?나는 무엇을 먹을까?왼쪽으로 가야 하나요 오른쪽으로 가야 하나요?코드를 작성할 때도 마찬가지입니다.1단원, 특히 2단계에서 Teatime 의사 코드를 다시 생각해 보십시오.
Boil water in a Tea Kettle Fill Kettle with Water Switch Kettle On Wait for Water to Boil
흠… 모든 것이 꽤 정확해 보이죠?물을 끓이기 위해 주전자에 물을 채우고 주전자를 켜고 물이 끓기를 기다립니다.그러나 주전자에 이미 물이 있다면 어떻게 될까요?주전자가 가득 차면?물은 얼마나 오래 끓여야 하나요?
표현식 및 표현식 연산자
우리는 결정을 내리기 전에 종종 비교를 합니다.이것보다 더 큰가요?이거랑 동급인가요?개발자는 종종 애플리케이션에서 결정을 내리기 전에 값을 비교합니다.코드에서 표현식 연산자를 두 표현식 사이에 배치하여 두 표현식을 비교합니다.
표현식은 평가될 때 단일 값을 생성하는 코드 조각입니다.이 모듈의 목적을 위해 표현식은 리터럴 값(예: 12), 변수(예: numberOfTeaCups) 또는 수학 연산(예: 7 x 4)일 수 있습니다.
표현식 연산자는 두 값 간의 동등성을 비교하거나 표시합니다.비교 문은 표현식 연산자로 구분된 두 개의 표현식으로 구성되며 true 또는 false의 부울 값을 생성합니다.
비교 연산자
운영자설명통사론결과
<
미만
1 < 2
진실
<=
이하
1 <= 2 3 <= 3
진실
==
동일
10 == 10
진실
!= <>
같지 않음
10 != 0 10 <> 11
진실
>
보다 큰
11 > 10
진실
>=
크거나 같음
40 >=10 40 >= 40
진실
같음연산자에 두 개의 등호가 있는 이유는 무엇입니까?이 문에서 단일 등호를 사용했음을 기억하십시오.
하나의 등호(=)는 할당 연산자입니다.가치를 부여합니다.두 개의 등호(==)는 비교 연산자입니다.두 값을 비교하여 같은지(true) 같지 않은지(false) 확인합니다.
연산자는 알려진 값을 변수와 비교하거나 두 개의 다른 변수 값을 비교할 때 특히 유용합니다.
2행은 이라는 부울 유형의 변수를 만들고resultnumberOfTeaCups 변수 값을 숫자 3과 비교하고 비교 결과(false)를result변수에할당합니다.
비교는 한 항목이 다른 항목과 어떻게 관련되어 있는지 결정하는 데 도움이 되지만 실제로 가장 빛나는 위치는 조건문 내에서 결정을 내리는 데 도움이 됩니다.
조건문(Conditional Statements)
개발자는 조건문 내의 표현식을 사용하여 프로그램에서 평가하거나 테스트할 하나 이상의 조건을 지정하는 의사 결정 구조를 만듭니다.와, 입이 떡 벌어졌습니다.분해해 보겠습니다.
조건문은 둘 이상의 옵션을 설정합니다.Process Builder에서 기준을 만든 적이 있다면 조건문을 사용한 적이 있을 것입니다.예를 들어 "주와 캘리포니아가 같으면 목록 보기에 레코드를 표시합니다"는 조건문입니다."State equals California"는 조건이고 "목록 보기에 레코드 표시"는 조건이 true인 경우에만 프로그램이 수행하는 작업입니다.이 예에서 두 가지 옵션은 레코드 표시(명시적)와 레코드를 표시하지 않음(묵시적)입니다.
If-Else 문
Apex에서 일반적으로 사용되는 조건문은if-else명령문입니다.
if(condition is true) { //do this } else { //do this }
1행은 조건을 정의합니다(괄호 안에 작성). 2행에는 1행의 조건이 참인 경우 실행할 코드가 포함되어 있습니다. 3행은 두 번째 옵션인 else 옵션을 소개합니다. 4행에는 1행의 조건이 거짓인 경우 실행할 코드가 포함되어 있습니다.
Apex에서는 조건문을 중괄호로 묶습니다{ }. .여는 중괄호({)는 닫는 중괄호(})와 쌍을 이루어야 합니다.코드 블록에 여는 중괄호가 있고 닫는 중괄호가 없으면 오류가 발생합니다.
Teatime 의사 코드에서 조건문을 사용하여 차 주전자의 수위를 확인하고 수위를 기반으로 다음에 수행할 작업을 결정하겠습니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
String waterLevel = 'full'; /*This variable keeps track of the water level status: full or empty*/
if(waterLevel == 'empty') { System.debug('Fill the tea kettle'); waterLevel = 'full'; /*Once the tea kettle is filled the variable is changed to full*/ } else { System.debug('The tea kettle is full'); }
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
1행에서 waterLevel 변수를 로 초기화했습니다full.일반적으로 코드의 변수 값은 사용자가 입력하거나 코드 자체에 지정되지 않은 다른 데이터에서 파생됩니다.Teatime 예제에서는 주전자의 센서에서 물리적 데이터를 가져와 수위를 결정합니다.이러한 데이터를 사용할 수 없는 경우 개발자는 코드를 실행하고 테스트할 수 있도록 코드에 값을 직접(일시적으로) 설정합니다.코드에서 값을 설정하는 것을 하드 코딩이라고 합니다.테스트 목적으로 waterLevel 변수 값을 하드코딩했습니다full.해당 값이 이미 설정되어 있으므로ifwaterLevel이 시작되지 않기 때문에첫 번째명령문(3행)은 실행되지 않습니다empty.
코드는 waterLevel 변수가 와 같은지 확인합니다empty.우리가 waterLevel을 하드 코딩 때문에full의if문 조건은 false입니다.때if조건이 거짓의else코드 블록은 실행됩니다.
우리 코드는 현재 두 가지 조건을 처리합니다. 수위는full이고 수위는empty입니다.하지만 그것만이 유일한 가능성은 아니겠죠?주전자가 부분적으로 가득 찼을 수 있습니다.두 가지 이상의 가능성을 어떻게 처리합니까?
If-Else If 문
두 가지 이상의 가능성을 처리하기 위해 if-else if 문을 사용합니다.if-else if 문은 마지막 else 조건 앞에 다른 if 조건을 추가합니다.실제 사례를 살펴보겠습니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
String waterLevel = 'half';
if(waterLevel == 'empty') { System.debug('Fill the tea kettle'); waterLevel = 'full'; } else if(waterLevel == 'half') { System.debug('Fill the tea kettle'); waterLevel = 'full'; } else { /*This statement only runs if line 2 and line 5 result in false.*/ System.debug('The tea kettle is full'); }
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서 디버그 전용확인란을선택합니다.
코드를 테스트할 때waterLevel1행의변수값을변경하십시오. 디버그 로그의 출력에 변경 사항이 반영됩니다.세 가지 값(half,full, 및empty.
첫 번째 조건이 가장 일반적인 조건이 되도록 조건문을 정렬합니다.이 배열은 코드 블록이 실행될 때마다 실행되는 코드의 양을 줄입니다.Teatime 예제에서 주전자는 비어 있을 가능성이 높으므로 해당 조건을 먼저 지정합니다.차 주전자가 가득 찼을 가능성이 없으므로 마지막으로 그 상태를 확인합니다.
Switch 문
if-else 문에 대한 보다 효율적인 대안은 switch 문입니다.switch 문은 값 집합을 지정하고 표현식을 테스트하여 해당 값 중 하나와 일치하는지 확인합니다.다음과 같이 표시됩니다.
switch on expression { when value1 { //code block 1 } when value2 { //code block 2 } when else { //if none of the previous values apply //code block 3 } }
switch 문에서when예약어뒤에 하나 이상의 값이 있을 수 있습니다.
switch on expression { when value1 { //single value //code block 1 } when value2, value3 { //multiple values //code block 2 } }
Teatime 의사 코드에 스위치를 적용해 보겠습니다.
개발자 콘솔에서Debug|Open Execute Anonymous Window..
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
String waterLevel = 'empty';
//option 1 using a single value switch on waterLevel { when 'empty' { System.debug('Fill the tea kettle'); } when 'half' { System.debug('Fill the tea kettle'); } when 'full' { System.debug('The tea kettle is full'); } when else { System.debug('Error!'); } }
//option 2 using multiple values switch on waterLevel { when 'empty', 'half' { //when waterLevel is either empty or half System.debug('Fill the tea kettle'); } when 'full' { System.debug('The tea kettle is full'); } when else { System.debug('Error!'); } }
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
논리 연산자
두 개 이상의 조건을 처리하는 방법을 살펴보았습니다.이제 하나의 조건이 둘 이상의 값으로 충족될 수 있는 경우 어떻게 해야 합니까?
논리 연산자
Operator
OR
AND
Operator symbol
||
&&
Pseudocode
If XorY, do this. Otherwise, do that.
If XandY, do this. Otherwise, do that.
Apex code
if(X || Y) { //do this } else { //do this }
if(X && Y) { //do this } else { //do this }
논리 연산자and를or사용하면 조건이 참인지 거짓인지를 결정하기 위해 둘 이상의 값을 확인하는 코드를 작성할 수 있습니다.and운영자는 모든 값이 조건을 만족시키기에 해당하는 것을 요구한다.or연산자 값 중 적어도 하나의 조건을 만족하는 진정한 것을 요구한다.
논리 연산자 평가
논리 연산자통사론설명
&&(AND)
X && Y
System.debug(true && true); // true
System.debug(false && true); //false
System.debug(true && false); // false
System.debug(false && false); //false
X and Y are Boolean values. If both X and Y are true, then the expression is true. Otherwise the expression is false.
|| (OR)
X || Y
System.debug(true || true); //true
System.debug(false || true); //true
System.debug(true || false); //true
System.debug(false || false); //false
X and Y are Boolean values. If both X and Y are false, then the expression is false. Otherwise the expression is true.
논리 연산자를 사용해 봅시다.다음은 if-else if 문으로 작성된 코드입니다.
String waterLevel = 'half';
if(waterLevel == 'empty') { System.debug('Fill the tea kettle'); waterLevel = 'full'; } else if(waterLevel == 'half') { System.debug('Fill the tea kettle'); waterLevel = 'full'; } else { //This statement only runs if line 3 and line 6 result in false. System.debug('The tea kettle is full'); }
4-5행과 7-8행을 보십시오.그들은 동일합니다.우리는 이것을 중복 코드라고 부릅니다.중복 제거는 코드를 더 읽기 쉽고 이해, 디버그 및 유지 관리하기 쉽게 만들기 때문에 모범 사례입니다.우리 코드는 waterLevel이empty또는half.emptyandhalf를 하나의 조건으로 결합하여 이 코드를 단순화할 수 있습니다.or값(empty또는half)이 참일때 조건이 충족되도록 연산자를사용합니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
String waterLevel = 'half';
if(waterLevel == 'empty' || waterLevel == 'half') { System.debug('Fill the tea kettle'); waterLevel = 'full'; } else { //This statement only runs if line 3 false. System.debug('The tea kettle is full'); }
선택 열기 로그체크 박스를 클릭실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
글쎄, 그것을 봐.코드 중복성을 제거했습니다.논리 연산자(&&및||)를 사용하는 것은 중복 코드를 제거하거나 줄이고 가독성을 향상시키는 효과적인 방법입니다.
Keep Your Code Clean
프로그래밍에서는 종종 무언가를 수행하는 방법이 두 가지 이상입니다.
예를 들어, switch 문 또는 if-else 문을 사용하여 동일한 결과에 도달할 수 있습니다.
사용할 문 유형을 선택할 때 고려해야 할 중요한 사항은 각각이 코드의 가독성에 미치는 영향입니다.
코드 작업을 계속하면서 코드를 깨끗하게 유지하는 더 많은 방법을 배웁니다.
지금은 코드를 읽고 이해하기 쉽게 만드는 데 집중하세요.
Quiz
1. If Integer i = 44, what is the value of the result variable in the following statement? Boolean result = i < 20;
A.true
B.44
C.false
D.20
2. How many choices are possible when using one if-else statement?
A.1
B.2
C.0
D.A and B
Loops 제어문 사용
학습 목표
이 단원을 완료하면 다음을 수행할 수 있습니다.
while 루프와 do-while 루프를 구별하십시오.
증가 및 감소 연산자를 사용하여 코드 실행을 제어합니다.
Teatime 예제에서 우리는 가장 가까운 친구들과 나누기 위해 차 한 잔을 만들었습니다.하지만 100명에게 차를 대접해야 한다면 어떻게 될까요?모든 사람이 서비스를 받을 때까지 동일한 단계를 계속 반복해야 합니다.너무 많은 중복 코드가 될 것 같지 않습니까?루프가 유용한 곳입니다.
루프는 특정 조건이 충족될 때까지 반복되는 코드 블록입니다.Teatime 코드의 경우 반복해야 할 단계를 검토해 보겠습니다.
Add Tea and Sugar to Teacup Pour Tea in Teacup Put 1 teaspoon of Sugar in Teacup Stir Tea in Teacup Serve Tea to a Friend
반복되는 단계를 루프에 추가할 수 있습니다.: 에이펙스는 세 개의 루프 코드 방식이while,do-while그리고for루프를.지금은while및do-while루프에중점을 둘 것입니다.이름while과do-while루프가 매우 유사합니다.둘 다 특정 조건이 충족되는지 확인합니다.차별화 요소는조건이 충족되었는지 확인할때입니다.While루프는 루프가 시작되기 전에조건을do-while확인하고 루프가 완료된후에루프를 확인합니다.
정말 작은 디테일 같죠?실제로 그 영향은 꽤 큽니다.
그것을 이런 식으로 생각하십시오do-while루프는 항상 적어도 한 번 실행됩니다.while루프는 조건에 따라 실행되지 않을 수 있습니다.
while 루프
while루프는 조건이 충족 된 경우 확인을 시작합니다.조건이 참이면 뭔가를 합니다.거짓이면 루프가 중지됩니다.
구문은 다음과 같습니다.
While(condition){ //run this block of code }
whileTeatime 코드에 루프를적용해 보겠습니다.
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
//Declare an Integer variable called totalGuests and set it to 100 Integer totalGuests = 100;
//Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar). Integer totalAmountSugar = 159;
//Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags). Integer totalAmountTea = 35;
//Loop: Add a teaspoon of sugar and one tea bag to a tea cup. Serve until there is no sugar or tea left.
선택열기 로그 확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
아니요, 그--표시는 오타가 아닙니다.사후 감소 연산자라고 합니다."이 값에서 하나의 숫자를 빼십시오."라고 말하는 속기 방식입니다.경우totalAmountSugar, IS (159)와 동일한, 현재의 값만큼 감소를totalAmountSugarIS (158)는 포스트 단위 연산자, 동일++값을 하나 개의 번호를 추가, 반대로한다.
정확히 무슨 일이 일어나고 있습니까?우리의 주요 목표는 100명에게 차를 제공하는 것임을 기억하십시오.손님을 대접할 때마다 각 재료(totalAmountSugar및totalAmountTea)의 1인분과 손님(totalGuests)이 차감됩니다.때totalAmountSugar또는이totalAmountTea0 (라인 15) 또는 (가)에 도달totalGuests0 (라인 12) 루프 정지 및 아무도로 제공됩니다됩니다.
do-while루프가어떻게작동하는지 살펴보겠습니다.
while 루프 수행
do-while루프는 조건이 테스트되기 전에 한 번 뭔가를 할 수있는 코드를 할 수 있습니다.
do-while루프는 한번의 작업을 수행하는 시작한다.다음으로 조건을 확인합니다.조건이 참이면 작업을 다시 실행합니다.거짓이면 루프가 중지됩니다.
구문을 살펴보십시오.
Do { //run this block of code } while(condition);
복사
개발자 콘솔에서디버그|익명 실행 창을 엽니다.
이 코드를 복사하여 Apex 코드 입력 창에 붙여넣습니다.
//Declare an Integer variable called totalGuests and set it to 100 Integer totalGuests = 100;
//Declare an Integer variable called totalAmountSugar and set it to 159 (number of teaspoons in a bag of sugar). Integer totalAmountSugar = 159;
//Declare an Integer variable called totalAmountTea and set it to 35 (number of teabags). Integer totalAmountTea = 35;
do { //deduct sugar serving totalAmountSugar--;
//deduct tea serving totalAmountTea--;
//deduct guest totalGuests--;
System.debug(totalGuests + ' Guests Remaining!');
//check ingredients if(totalAmountSugar == 0 || totalAmountTea == 0) { System.debug('Out of ingredients!'); break; //ends the While loop }
} while(totalGuests > 0);
선택열기 로그확인란을 선택하고 다음을 클릭합니다실행.실행 로그가 열리고 코드 실행 결과가 표시됩니다.
창 하단에서디버그 전용확인란을선택합니다.
여러 방법으로 변수를 선언하고, 값을 인스턴스화하고, 목록을 만들고, 데이터를 반복했습니다.축하합니다!Apex 소개를 완료했으며 코드에 대해 더 많이 이해하고 있습니다.
Quiz
1. Integer x equals 1. While x < 2, a System.debug statement displays x and increments x by 1 (x++). What is the output in the logs?
A.1
B.2
C.1 2
D.1 2 3
2. True or false: A while loop starts by verifying a condition first.