JF 언어에 오신 것을 환영합니다! 이 문서는 JF 언어의 공식 문법과 규칙을 설명하는 가이드북입니다. 이 문서는 README.md에서 간략하게 소개된 문법을 더욱 상세하게 설명하며, JF 언어로 프로그램을 작성하는 데 필요한 모든 정보를 제공합니다.
JF 언어의 모든 실행 문장(statement)은 반드시 마침표(.)로 끝나야 합니다. 이는 하나의 명령이 끝났음을 언어에 알려주는 규칙입니다.
만약 한 줄에 여러 개의 문장을 작성하고 싶다면, 각 문장을 콜론(:)으로 구분할 수 있습니다.
console.print("Hello, World!").
x is 10: console.print(x).
주석은 코드에 대한 설명을 작성하는 부분으로, 실제 프로그램 실행에는 영향을 주지 않습니다. JF 언어에서는 note: 키워드로 주석을 시작합니다. note:가 나오면 그 줄의 끝까지 모든 내용은 주석으로 처리됩니다.
note: 이 줄은 전체가 주석입니다.
x is 100. note: 이 부분은 주석으로 처리됩니다.
변수는 값을 저장하는 공간입니다. JF 언어에서는 is 키워드를 사용하여 변수를 선언하고 값을 할당합니다.
note: 변수 age에 숫자 25를 할당합니다.
age is 25.
note: 변수 user_name에 문자열 "Jeaho"를 할당합니다.
user_name is "Jeaho".
note: 다른 변수나 연산의 결과를 할당할 수도 있습니다.
total_price is 1000 + 500.
JF 언어는 다음과 같은 기본 자료형을 지원합니다.
10, 0, -25와 같은 숫자입니다."Hello", 'World'와 같이 따옴표(" 또는 ')로 감싸인 텍스트입니다.true 또는 false 값을 가지며, 주로 조건의 참/거짓을 나타냅니다.count is 10. note: 정수형 변수
message is "Hi". note: 문자열 변수
is_active is true. note: 불리언 변수
문자열 내부에 변수 값을 쉽게 포함시킬 수 있는 기능입니다. @{변수명} 형식을 사용하면 해당 부분에 변수의 값이 자동으로 삽입됩니다.
name is "Alex".
age is 30.
note: 문자열 안에 name과 age 변수의 값을 포함하여 출력합니다.
console.print("My name is @{name} and I am @{age} years old.").
note: 실행 결과 -> My name is Alex and I am 30 years old.
숫자 계산에 사용되는 연산자입니다.
| 연산자 | 설명 | 예시 | 결과 |
|---|---|---|---|
+ |
덧셈 | 10 + 5 |
15 |
- |
뺄셈 | 10 - 5 |
5 |
* |
곱셈 | 10 * 5 |
50 |
/ |
나눗셈 | 10 / 5 |
2 |
특징: + 연산자는 피연산자 중 하나라도 문자열이면, 나머지 값도 문자열로 변환하여 두 문자열을 연결합니다.
result is "Price: " + 100.
console.print(result). note: "Price: 100" 출력
두 값의 크기를 비교하며, 결과는 불리언(true 또는 false) 값으로 나옵니다.
| 연산자 | 설명 | 예시 | 결과 |
|---|---|---|---|
== |
같음 | 5 == 5 |
true |
!= |
다름 | 5 != 3 |
true |
< |
보다 작음 | 3 < 5 |
true |
> |
보다 큼 | 3 > 5 |
false |
<= |
보다 작거나 같음 | 5 <= 5 |
true |
>= |
보다 크거나 같음 | 3 >= 5 |
false |
불리언 값들을 조합하여 새로운 불리언 결과를 만들어냅니다.
| 연산자 | 설명 | 예시 | 결과 |
|---|---|---|---|
and |
그리고(AND): 양쪽 모두 true일 때만 true |
true and false |
false |
or |
또는(OR): 둘 중 하나라도 true이면 true |
true or false |
true |
not |
아님(NOT): 불리언 값을 반대로 뒤집음 | not true |
false |
console.print()괄호 안의 값을 화면에 출력합니다. 쉼표(,)를 사용하여 여러 개의 값을 한 번에 출력할 수 있으며, 값들은 공백으로 구분되어 출력됩니다.
x is 10.
y is 20.
console.print("The value of x is", x).
console.print(x, "+", y, "is", x + y).
note: 실행 결과
note: The value of x is 10
note: 10 + 20 is 30
console.read()사용자로부터 입력을 받기 위한 기능입니다. 온라인 IDE에서는 코드를 실행하기 전, 별도의 'Input' 입력창에 필요한 모든 값을 미리 작성해야 합니다.
console.read()가 코드에서 호출될 때마다 'Input' 창에 작성된 텍스트를 위에서부터 한 줄씩 순서대로 읽어옵니다.
기존과 동일하게 console.read()는 선택적으로 int()나 string()을 인자로 받아 입력받은 값을 해당 타입으로 변환하려고 시도합니다. 인자를 생략할 경우 기본값은 string() 입니다.
예시: 이름(문자열)과 나이(정수)를 입력받아 출력하는 코드
1. 코드 에디터에 작성할 JF 코드:
console.print("이름과 나이를 한 줄에 하나씩 입력해주세요.").
note: 첫 번째 입력을 받아 name 변수에 저장합니다.
name is console.read(string()).
note: 두 번째 입력을 받아 정수형으로 age 변수에 저장합니다.
age is console.read(int()).
console.print("--- 입력 결과 ---").
console.print("안녕하세요, @{name}님!").
console.print("내년에는", age + 1,"살이 되시는군요.").
2. 'Input' 창에 미리 입력할 내용:
Jeaho
20
3. 예상 실행 결과 (Output):
이름과 나이를 한 줄에 하나씩 입력해주세요.
--- 입력 결과 ---
안녕하세요, Jeaho님!
내년에는 21 살이 되시는군요.
값의 자료형을 다른 자료형으로 명시적으로 변환하는 기능입니다.
int(값): 주어진 값을 정수(Integer)로 변환합니다.string(값): 주어진 값을 문자열(String)으로 변환합니다.note: 문자열 "123"을 숫자 123으로 변환합니다.
num_str is "123".
num_int is int(num_str).
console.print(num_int + 7). note: 130 출력
note: 숫자 456을 문자열 "456"으로 변환합니다.
my_num is 456.
my_str is string(my_num).
console.print("The number is " + my_str).