30/09/2018, 17:33

Console.WriteLine("(x,y)=({0},{1})", x, y); có nghĩa là gì?

Em chưa hiểu cái đoạn code trong hàm

public void Display()
{
    Console.WriteLine("(x,y)=({0},{1})", x, y);
}

Đây là Class

namespace ClassPoint
{
    class Point
    {
        private double x, y;
        public void lnit(double x = 0, double y = 0)
        {
            this.x = x;
            this.y = y;
        }
        public void Move(double dx, double dy)
        {
            x += dx;
            y += dy;
        }
        public void Display()
        {
            Console.WriteLine("(x,y)=({0},{1})", x, y);
        }
        static void Main(string[] args)
        {
            Point A = new Point();
            A.lnit(2, 3);
            A.Display();
            A.Move(3, 4);
            A.Display();
            Console.Read();
        }
    }
}

Anh chị nào nói qua giúp em tí được không ạ! code em làm thì đã chạy được rồi nhưng cái câu lệnh trong hàm Display() em chưa hiểu ý nghĩa.

Huu Thuc viết 19:44 ngày 30/09/2018

Console.WriteLine thì in ra màn hình rồi nhưng cái đoạn : “(x,y)=({0},{1})” là thế nào ạ, tại giờ em mới tự tìm hiều nên những câu lệnh đơn giản này em chưa hiểu được ạ.

Mai Anh Dũng viết 19:41 ngày 30/09/2018

Trong câu lệnh Console.WriteLine thì {0} sẽ được thay thế bởi giá trị của x, tượng tự {1} được thay bằng y

Console.WriteLine("(x,y)=({0},{1})", x, y);

@lht nghiên cứu lại cách đặt một câu hỏi rõ ràng hơn nhé. Nhớ dùng Markdown để post code

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…
Huu Thuc viết 19:43 ngày 30/09/2018

Nhưng em có khởi tạo giá trị cho điểm A đầu tiên là :

Point A = new Point();
A.lnit(2, 3);

rồi mà anh @ltd, thì {0} thay cho x, và {1} thay cho y làm gì nữa ạ.
Dạ lần sau em sẽ sữa đổi.

Mai Anh Dũng viết 19:47 ngày 30/09/2018

Như em đã biết lệnh WriteLine dùng để in ra ngoài màn hình. Cái đoạn {0} dùng để cho C# biết em muốn in giá trị x nằm ở đâu, ở đầu câu, cuối câu, hay trong trường hợp của em là nằm giữa dấu () và cách nhau bởi dấu ,

Thì nó sẽ in ra được giá trị như sau với x = 2 và y = 3

(x,y) = (2,3)
Huu Thuc viết 19:39 ngày 30/09/2018

Em thay {0} trong lệnh WriteLine bằng {1} thì nó in ra x = 3 và y = 3 . Còn thay {0} bằng{2}``` thì chương trình báo lỗi. Em vẫn chưa hiểu rõ ý anh nói lắm. Em mới tìm hiểu nên đang kém. Mong anh nói kỹ hơn giúp em 1 chút ạ!

Minh Hoàng viết 19:38 ngày 30/09/2018

Bạn nên xem lại detail của hàm để hiểu rõ.

Em thay {0} trong lệnh WriteLine bằng {1} thì nó in ra x = 3 và y = 3

x và y sẽ được đánh số là 0 và 1 theo thứ tự trong hàm WriteLine.
Nếu như bạn code Console.WriteLine("(x,y)=({0},{1})", y, x);. Thì y sẽ được đánh số là 0, x sẽ được đánh số là 1.
{n} có thể hiểu đơn giản là lấy giá trị có số thứ tự n.

Còn thay {0} bằng{2}` thì chương trình báo lỗi

Mình chỉ thêm vào 2 biến là x và y nên không có biến nào được đánh số là 2 cả. Nên sẽ có lỗi.

Huu Thuc viết 19:33 ngày 30/09/2018

Tức là Console.WriteLine("(x,y)=({0},{1})", x, y); thì x sẽ hiển thị trước : (x,y) = (2,3). Còn em đổi 0 cho 1 thì y hiện trước đúng không @Rok_Hoang? Em đã thử đổi 0 cho 1 và thấy y nó hiện trước :
(x,y) = (3,2). Như thế này thì x nhận giá trị là 3 hay 2 à anh?

Minh Hoàng viết 19:45 ngày 30/09/2018

Bạn có thể cho show dòng code ra đây được không. Cần làm rõ là x và y sẽ không nhận giá trị gì cả (giá trị x và y sẽ không bị thay đổi).
Chỉ do cú pháp mà nó sẽ in ra khác nhau thôi.

Mai Anh Dũng viết 19:35 ngày 30/09/2018

Như thế này thì x nhận giá trị là 3 hay 2 à anh?

x không liên quan gì ở đây cả. xy là biến. hàm WriteLine Không đổi giá trị của xy, nó chỉ in ra mà thôi. Nên không có chuyện x nhận giá trị.

Cái được nhận giá trị ở đây là {0}{1} tùy vào vị trí của biến được đặt phía sau dấu ,.

Ở đây

  • x đứng trước, nên sẽ có vị trí 0,
  • y đứng sau nên có vị trí 1

Còn nếu cho số 2 vào thì không có giá trị gì cả

Còn nếu nghịch đảo

Huu Thuc viết 19:41 ngày 30/09/2018

Console.WriteLine("(x,y)=({0},{1})", x, y); nó sẽ hiện (x,y) = (2,3)
Console.WriteLine("(x,y)=({1},{0})", x, y); nó sẽ hiện (x,y) = (3,2)
Console.WriteLine("(x,y)=({1},{1})", x, y); nó sẽ hiện (x,y) = (3,3)
Nên em chưa hiểu lắm @Rok_Hoang ạ!

Mai Anh Dũng viết 19:49 ngày 30/09/2018

@lht em cố gắng đọc thật kỹ các câu trả lời và suy nghĩ thật kỹ, không nên thay đổi các giá trị liên tục để xem giá trị mà không suy nghĩ.

Huu Thuc viết 19:47 ngày 30/09/2018

Dạ em cảm ơn a @ltd, @Rok_Hoang ạ. Em xem lại đã.

Huu Thuc viết 19:44 ngày 30/09/2018

Cám ơn a @ltd nhiều ạ. A minh họa 3 hình vẽ như thế em hiểu rồi ạ. Đơn giản vậy mà em cứ nghĩ đâu đâu.

Mai Anh Dũng viết 19:36 ngày 30/09/2018

Hehe, tại anh thấy em comment liên tục, tốc độ comment khá nhanh nên anh đoán là em không có đọc các câu trả lời một cách cẩn thận.

Em bấm vào dấu trên trả lời nào mà em thấy đúng nhất để chọn đấy làm câu trả lời đúng.

P/S: Chỉ có thể chọn một câu trả lời đúng mà thôi.

Huu Thuc viết 19:49 ngày 30/09/2018

Dạ. Tại em cứ comment vậy mà không suy nghĩ đi ạ. Giờ mới học mà đang non kém thế này không biết em có biết lập trình không nữa. A @ltd cho em 1 lời khuyên với. Em 25 tuổi rồi.huhu

Mai Anh Dũng viết 19:42 ngày 30/09/2018

@lht tiếp tục đọc topic này: Lập trình vui vẻ

This topic is now closed. New replies are no longer allowed.

Bài liên quan
0