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.
Bài liên quan
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 ạ.
Trong câu lệnh
Console.WriteLine
thì{0}
sẽ được thay thế bởi giá trị củax
, tượng tự{1}
được thay bằngy
@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
Nhưng em có khởi tạo giá trị cho điểm A đầu tiên là :
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.
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
Em thay
{0}
trong lệnhWriteLine
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 ạ!Bạn nên xem lại detail của hàm để hiểu rõ.
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.
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.
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?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.
x
không liên quan gì ở đây cả.x
vày
là biến. hàmWriteLine
Không đổi giá trị củax
vày
, nó chỉ in ra mà thôi. Nên không có chuyệnx
nhận giá trị.Cái được nhận giá trị ở đây là
{0}
và{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
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 ạ!
@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ĩ.
Dạ em cảm ơn a @ltd, @Rok_Hoang ạ. Em xem lại đã.
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.
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.
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
@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.