Viết chương trình đầu tiên bằng Kotlin

1. Trước khi bắt đầu

Trong lớp học lập trình này, bạn sẽ viết chương trình đầu tiên bằng ngôn ngữ Kotlin thông qua trình soạn thảo tương tác mà bạn có thể chạy trên trình duyệt của mình.

Bạn có thể xem chương trình (program) là một loạt lệnh để hệ thống thực hiện một số hành động. Ví dụ: bạn có thể viết một chương trình tạo thiệp sinh nhật. Trong chương trình đó, bạn có thể viết lệnh in văn bản chúc mừng hoặc tính tuổi của một người dựa trên năm sinh của họ.

Cũng giống như việc bạn sử dụng ngôn ngữ của con người để giao tiếp với người khác, bạn sử dụng ngôn ngữ lập trình để giao tiếp với hệ điều hành của máy tính. May mắn thay, ngôn ngữ lập trình ít phức tạp hơn ngôn ngữ của con người và khá logic!

Các ứng dụng Android được viết bằng ngôn ngữ lập trình Kotlin. Kotlin là một ngôn ngữ hiện đại được tạo ra để giúp nhà phát triển viết mã một cách hiệu quả và ít lỗi nhất có thể.

Sẽ rất khó để bạn vừa học cách tạo ứng dụng, vừa học các kiến thức lập trình cơ bản cùng một lúc. Vì vậy, chúng ta sẽ bắt đầu bằng một số nội dung lập trình trước khi bắt đầu tạo ứng dụng. Việc làm quen với một số kiến thức lập trình cơ bản không chỉ là một bước quan trọng để tạo ứng dụng, mà còn giúp bạn sau này dễ dàng tạo ứng dụng đầu tiên hơn trong khoá học này.

Trình soạn thảo mã là công cụ giúp bạn viết mã, giống như cách trình xử lý văn bản (như Google Tài liệu) giúp bạn tạo tài liệu văn bản. Trong lớp học lập trình này, bạn sẽ sử dụng trình soạn thảo Kotlin (Kotlin editor) có tính tương tác trên trình duyệt. Tức là bạn không phải cài đặt bất kỳ phần mềm nào để thực hiện bước đầu tiên trong quá trình phát triển ứng dụng.

Điều kiện tiên quyết

  • Sử dụng trang web tương tác trên trình duyệt web.

Kiến thức bạn sẽ học được

  • Cách tạo, thay đổi, hiểu và chạy một chương trình Kotlin tối giản có chức năng hiện thông báo.

Sản phẩm bạn sẽ tạo ra

  • Một chương trình bằng ngôn ngữ lập trình Kotlin sẽ hiện thông báo khi bạn chạy chương trình đó.

Bạn cần có

  • Một máy tính sử dụng một trình duyệt web hiện đại (chẳng hạn như trình duyệt Chrome phiên bản mới nhất).
  • Quyền truy cập Internet trên máy tính.

2. Chạy chương trình đầu tiên trong Kotlin

Trong nhiệm vụ này, bạn sẽ sử dụng trình soạn thảo trên một trang web để bắt đầu lập trình bằng ngôn ngữ Kotlin ngay lập tức.

Sử dụng trình soạn thảo mã có tính tương tác

Thay vì cài đặt phần mềm trên máy tính, bạn có thể sử dụng một công cụ dùng trên nền tảng web để tạo chương trình đầu tiên của mình.

  1. Trên trình duyệt, hãy mở https://developer.android.com/training/kotlinplayground. Thao tác này sẽ mở ra một công cụ lập trình dùng trên trình duyệt.
  2. Bạn sẽ thấy một trang tương tự như ảnh chụp màn hình dưới đây, trong đó có một trình soạn thảo mã ở giữa. c76b631b5d7b5546.png

Đây là mã của chương trình trong trình soạn thảo:

fun main() {
    println("Hello, world!")
}

Chạy mã của chương trình

Quy trình chạy một chương trình mà bạn đã tạo không khác biệt quá nhiều so với quy trình chạy một chương trình như trình xử lý văn bản trên máy tính. Điểm khác biệt là khi bạn chạy một chương trình để hoàn thành nhiệm vụ (hoặc chơi trò chơi), bạn chủ yếu quan tâm đến những việc mà chương trình đó có thể làm cho bạn mà không quan tâm đến mã nào đang giúp chương trình đó hoạt động. Khi lập trình, bạn sẽ được xem và làm việc với mã thực tế đã tạo nên điều kỳ diệu.

Hãy xem chương trình này làm được những gì!

  1. Trong trình soạn thảo, ở góc trên cùng bên phải, hãy tìm biểu tượng hình tam giác màu trắng hoặc xanh lục 3384088a105a0da9.png rồi nhấp vào biểu tượng đó để chạy chương trình.
  2. Nhìn vào ngăn ở dưới cùng.
Hello, world!
  1. Nhận thấy Hello, world! đã xuất hiện như trong hình trên. Giờ đây, bạn đã biết chương trình này làm gì: Chương trình này in (hoặc xuất ra) một thông báo hello world (xin chào thế giới).

Biên dịch (compile) là quá trình dịch mã của chương trình Kotlin sang một dạng mà hệ thống có thể chạy. Quá trình biên dịch hoàn tất đồng nghĩa với việc không có lỗi nào trong chương trình ngăn cản quá trình chạy. Nếu có sự cố thì các sự cố đó sẽ xuất hiện trong ngăn ở dưới cùng.

3. Sửa đổi chương trình

Thay đổi mã Hello World (Xin chào thế giới)

Hãy thay đổi chương trình này khác đi một chút.

  1. Thay đổi văn bản "Hello, world!" thành "Happy Birthday!".
  2. Chạy chương trình bằng cách nhấp vào nút chạy màu xanh dương hoặc xanh lục ở trên cùng bên phải.
  3. Ở dưới cùng, bạn sẽ thấy Happy Birthday! xuất hiện, như minh hoạ dưới đây.
Happy Birthday!

Cách thức hoạt động

Làm thế nào để thực hiện việc này? Có vẻ như sẽ cần rất nhiều mã để in một nội dung bất kỳ!

Nếu bạn muốn một người bạn viết "Hello, world!" ("Xin chào, thế giới!") trên một mảnh giấy, thì có rất nhiều thông tin ngụ ý. Nếu bạn đơn giản chỉ nói với họ là "Hãy viết "‘Hello world!" trên mảnh giấy này", thì họ sẽ đưa ra các giả định về thông tin bạn không nhắc tới. Ví dụ: họ sẽ cho rằng họ cần dùng bút và bạn muốn họ viết câu đó bằng các chữ cái! Máy tính không đưa ra các giả định như vậy nên bạn phải cung cấp lệnh chính xác bao gồm tất cả các bước.

Giống như ngôn ngữ tiếng Anh có cấu trúc, ngôn ngữ lập trình cũng vậy. Nếu từng học một ngôn ngữ khác thì bạn sẽ hiểu được thách thức của việc học ngữ pháp, chính tả, cũng có thể là bảng chữ cái mới bằng ký hiệu và từ vựng. Việc học lập trình có những thách thức tương tự, nhưng may mắn thay, quá trình này sẽ ít phức tạp và logic hơn nhiều so với việc học, chẳng hạn như học tiếng Anh.

Tìm hiểu các phần của chương trình

Bây giờ, hãy xem qua mã. Mỗi phần của chương trình này phục vụ một mục đích cụ thể và bạn cần tất cả các phần để có thể chạy chương trình. Hãy bắt đầu với từ đầu tiên.

fun
  • fun là một từ trong ngôn ngữ lập trình Kotlin. fun là viết tắt của hàm (function). Hàm là một phần của một chương trình thực hiện một nhiệm vụ cụ thể.
fun main
  • main là tên của hàm này. Các hàm được đặt tên nên bạn có thể phân biệt được từng hàm. Hàm này tên là main vì là hàm đầu tiên (hoặc hàm chính) được gọi khi bạn chạy chương trình. Mọi chương trình Kotlin đều cần một hàm tên là main.
fun main()
  • Tên hàm luôn đứng trước hai dấu ngoặc đơn ().
  • Bên trong dấu ngoặc đơn, bạn có thể đưa thông tin vào hàm để sử dụng. Giá trị đưa vào hàm gọi là "argument" (đối số) hoặc viết tắt là args. Bạn sẽ tìm hiểu thêm về đối số sau.
fun main() {}
  • Chú ý cặp dấu ngoặc nhọn {} sau dấu ngoặc đơn. Bên trong một hàm là mã sẽ hoàn thành một nhiệm vụ. Những dấu ngoặc nhọn này chứa các dòng mã đó.

Nhìn vào dòng mã nằm trong dấu ngoặc nhọn:

println("Happy Birthday!")

Dòng mã này in văn bản Happy Birthday!.

  • println yêu cầu hệ thống in một dòng văn bản.
  • Bạn đưa văn bản cần in vào bên trong dấu ngoặc đơn.
  • Lưu ý rằng văn bản sẽ được in nằm trong dấu ngoặc kép. Điều này cho hệ thống biết rằng mọi nội dung bên trong dấu ngoặc kép sẽ được in chính xác như đã thiết lập.

Để thật sự in văn bản, toàn bộ lệnh println này phải nằm trong hàm main.

Vậy là xong. Chương trình Kotlin nhỏ nhất.

fun main() {
    println("Happy Birthday!")
}

4. Mở rộng chương trình

Tuyệt vời! Bạn đã in một dòng văn bản bằng println() function. Tuy nhiên, bạn có thể đưa bao nhiêu dòng lệnh vào một hàm tuỳ thích hoặc nếu cần để hoàn thành một nhiệm vụ.

  1. Sao chép dòng println("Happy Birthday!") rồi dán hai lần vào bên dưới dòng đó. Đảm bảo các dòng đã dán nằm trong dấu ngoặc nhọn của hàm main.
  2. Thay đổi một văn bản sẽ in thành tên của một người, chẳng hạn như "Jhansi".
  3. Thay đổi văn bản sẽ in còn lại thành "You are 25!" ("Bạn sang 25 tuổi rồi!").

Mã của bạn sẽ trông giống như mã dưới đây.

fun main() {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

Bạn mong đợi mã này sẽ làm gì khi chạy?

  1. Chạy chương trình để xem kết quả.
  2. Chuyển đến ngăn kết quả để thấy 3 dòng được in trong cửa sổ bảng điều khiển, như minh hoạ dưới đây.
Happy Birthday!
Jhansi
You are 25!

Khá lắm!

Xử lý lỗi

Việc gặp lỗi trong khi lập trình là bình thường và hầu hết công cụ sẽ đưa ra phản hồi để giúp bạn sửa lỗi. Trong bước này, hãy tạo một lỗi để xem điều gì sẽ xảy ra.

  1. Trong chương trình, hãy xoá dấu ngoặc kép chứa văn bản Jhansi để dòng đó có dạng như dưới đây.
println(Jhansi)
  1. Chạy chương trình. Bạn sẽ thấy Jhansi được in màu đỏ và biểu tượng dấu chấm than bên cạnh dòng mã mà bạn đã thay đổi, để cho bạn biết lỗi nằm ở đâu. 8f2f490d4e1d9d96.png
  2. Nhìn vào ngăn kết quả. Ngăn này đưa ra một thông báo có cùng biểu tượng dấu chấm than và từ Error. Nội dung tiếp đó mô tả lỗi trong mã của bạn.

cd65347bcb6890d6.png

  1. Thông báo này (Unresolved reference: Jhansi) cho bạn biết hệ thống cho rằng lỗi nằm trong mã này. Ngay cả khi không biết ý nghĩa của thông báo lỗi, bạn vẫn có thể tìm ra sự cố. Trong trường hợp này, bạn biết rằng lệnh println() in văn bản. Bạn đã biết rằng văn bản phải nằm trong dấu ngoặc kép. Nếu văn bản không nằm trong dấu ngoặc kép thì đó là lỗi.
  2. Tiếp tục và thêm lại dấu ngoặc kép.
  3. Chạy chương trình để đảm bảo chương trình hoạt động trở lại.

Xin chúc mừng! Bạn đã chạy và thay đổi chương trình Kotlin đầu tiên!

5. Mã giải pháp

Đây là mã hoàn chỉnh của chương trình mà bạn đã thực hiện trong lớp học lập trình này.

fun main() {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

6. Tóm tắt

  • https://developer.android.com/training/kotlinplayground là trình soạn thảo mã tương tác trên web nơi bạn có thể thực hành viết các chương trình Kotlin.
  • Mọi chương trình Kotlin đều phải có một hàm main(): fun main() {}
  • Sử dụng hàm println() để in một dòng văn bản.
  • Đưa văn bản bạn muốn in vào dấu ngoặc kép. Ví dụ: "Hello".
  • Lặp lại lệnh println() để in nhiều dòng văn bản.
  • Lỗi được đánh dấu màu đỏ trong chương trình. Có một thông báo lỗi trong ngăn kết quả để giúp bạn tìm ra lỗi ở đâu và nguyên nhân có thể gây ra lỗi.

7. Tìm hiểu thêm

8. Tự thực hành

Thực hiện những việc sau:

  1. Thay đổi lệnh println() thành print().
  2. Chạy chương trình. Điều gì sẽ xảy ra?

Gợi ý: Lệnh print() chỉ in văn bản mà không ngắt dòng ở cuối mỗi chuỗi.

  1. Sửa văn bản sao cho mỗi phần của thông báo đều nằm trên một dòng riêng.

Gợi ý: Sử dụng \n bên trong văn bản để thêm dấu ngắt dòng. Ví dụ: "line \n break". Thao tác thêm dấu ngắt dòng sẽ làm thay đổi kết quả như minh hoạ dưới đây.

Gợi ý: Bạn có thể in một dòng trống bằng cách không cung cấp văn bản: println("").

Mã:

fun main() {
    println("no line break")
    println("")
    println("with line \n break")
}

Kết quả:

no line break

with line
 break

Kiểm tra thành phẩm:

Sau đây là một giải pháp khả thi:

fun main() {
    print("Happy Birthday!\n")
    print("Jhansi\n")
    print("You are 25!")
}