อินพุต เอาต์พุต พื้นฐาน

ในการเขียนโปรแกรม สิ่งที่สำคัญอย่างหนึ่งคือโปรแกรมต้องมีการติดต่อกับผู้ใช้ โดยพื้นฐานแล้วเป็นการแสดงผลลัพธ์ของโปรแกรมซึ่งเรียกว่า output โดยทั่วไปมักจะเป็นหน้าจอของคอมพิวเตอร์ และอีกอย่างหนึ่งคือการให้ข้อมูลกับโปรแกรม เรียกว่า input โดยปกติจะเป็นทางคีย์บอร์ด อย่างไรก็ตามมันสามารถเกิดขึ้นได้โดยวิธีอื่นๆ เช่น โหลดจากไฟล์ เสียง หรือนำเข้าจากกล้องถ่ายภาพ เป็นต้น สำหรับบทเรียนนี้เราจะพูดบนพื้นฐานการทำงานกับคอมพิวเตอร์เท่านั้น

ในบทเรียนนี้ เราจะแนะนำให้คุณได้รู้จักกับวิธีที่ใช้กันบ่อยๆ กับ console โปรแกรม

การแสดงข้อความกับเมธอด Write() และ WriteLine()

คุณจะเห็นว่าเราได้ใช้เมธอดนี้ไปแล้วในบทก่อนหน้า เมธอด Write() และ WriteLine() นั้นมาจากไลบรารี่มาตฐานของภาษา C# ซึ่งอยู่ในคลาส Console ข้อแตกต่างของมันคือ เมธอด WriteLine() นั้นจะเพิ่มการขึ้นบรรทัดใหม่เข้าไปเพื่อคุณใส่ตัวอักษรเข้าไปในเมธอด ในขณะที่เมธอด Write() นั้นจะไม่ทำ มาดูตัวอย่าง

using System;

class BasicInputOutput1
{
static void Main(string[] args)
{
Console.Write("Hello Java");
Console.WriteLine("Hello C#");
Console.Write("Hello C++");
}
}

มาดูตัวอย่าง เมื่อโปรแกรมได้ถูกรัน

Hello JavaHello C#
Hello C++

จากตัวอย่างด้านบนนั้น คุณจะสังเกตุเห็นว่าหลังจากคำว่า "Hello C#" โปรแกรมจะขึ้นบรรทัดใหม่ นั่นเป็นผลลัพธ์ของเมธอด WriteLine() นั่นเอง ในภาษา C# คุณสามารถใช้ตัวอักษรพิเศษ \n เพื่อแสดงผลลัพธ์ของการขึ้นบรรทัดใหม่

Console.Write("Hello C#\n");
Console.WriteLine("Hello C#");

จากตัวอย่างด้านบน ทั้งของบรรทัดของโปรแกรมนั้นให้ผลลัพธ์ที่เหมือนกัน

เมธอด Write() และ WriteLine() กับตัวแปร

เหมือนในภาษาอื่นๆ ภาษา C# สามารถแสดงตัวอักษรร่วมกับตัวแปรและค่าคงที่ได้ สำหรับเมธอด Write() และ WriteLine() นั้นจะเป็นการใส่พารามิเตอร์มากกว่า 2 ตัวขึ้นไป จะจัดรูปแบบการแสดงผลในพารามิเตอร์ตัวแรก มาดูตัวอย่างการใช้งานของทั้งสองเมธอด

using System;

class BasicInputOutput2
{
static void Main(string[] args)
{
String name = "Marcus";
String music = "Trip hop";
String movie = "science";
Console.WriteLine("My name is {0}.", name);
Console.WriteLine("{0} is my favorite music style and {1} is movie style.", music, movie);
}
}

ในตัวอย่าง เราได้แสดงผลชื่อจากตัวแปร nameWriteLine() คือตัวแปร name และหลังจากนั้นเราจะต้องทำการจัดรูปแบบการแสดงผลที่อากิวเมนต์แรกที่คุณจะเห็น { และ } เพื่อให้สอดคล้องกับลำดับของตัวแปรที่ใส่เข้ามาในเมธอด

และนี่เป็นผลลัพธ์ของโปรแกรม

My name is Marcus.
Trip hop is my favorite music style and science is movie style.

และในภาษา C# ยังมีอีกวิธีหนึ่งที่คุณสามารถใช้ได้คือการต่อ string หรือเราเรียกว่า String concatenating โดยการใช้เครื่องหมาย + เพื่อต่อข้อความเข้าด้วยกัน และคุณได้เห็นเราได้ใช้ในบทก่อนหน้านี้แล้ว

using System;

class BasicInputOutput3
{
static void Main(string[] args)
{
String name = "Marcus";
String music = "Trip hop";
String movie = "science";
Console.WriteLine("My name is " + name + ".");
Console.WriteLine(music + " is my favorite music style and " + movie+ " is movie style.");
}
}

ทั้งสองวิธีนั้นให้ผลลัพธ์ที่เหมือนกัน แต่จะมีข้อควรระวังคือการใช้เครื่องหมาย Concatenating นั้นจะทำให้เกิดการแปลงตัวเลขเป็น String และให้คุณเลือกใช้มันอย่างเหมาะสม

Console.WriteLine("Number is " + 3 + 4); // Number is 34
Console.WriteLine("Number is " + (3 + 4)); // Number is 7

จากตัวอย่างนั้นจะได้ผลลัพธ์ที่แตกต่างกัน เพราะว่าการใช้เครื่องหมาย Concatenate กับ String นั้นจะทำให้ตัวเลขถูกแปลงไปเป็นสตริงอัตโนมัติ คุณต้องกำหนดความสำคัญให้กับตัวเลขก่อนโดยการใส่วงเล็บดังตัวอย่างด้านบน

การอ่านค่าด้วยเมธอด Read() และ ReadLine()

ในภาษา C# ได้มีเมธอดอำนวยความสะดวกสำหรับการอ่านค่านำเข้าจาก Input Stream เช่น คีย์บอร์ด โดยส่วนมากเรามักจะใช้เมธอด ReadLine()

การใช้เมธอด Read()

เมธอด Read() ใช้เพื่อผ่านตัวอักษรตัวต่อไปจาก input steam โดยเมธอดจะส่งค่า integer ของตัวอักษรกลับมา โดยมันมีรูปแบบการใช้งานดังนี้

int variable = Console.Read();

Note: เมธอดนี้ใช้เพื่อรับค่าเพียงแค่หนึ่งตัวอักษรจากคีย์บอร์ดเท่านั้น ถ้าค่าอินพุตท์ของคุณมากกว่า มันจะตัดทิ้งไปเก็บไว้ใน input buffer

Console.WriteLine(Console.Read());
Console.WriteLine(Console.Read());
Console.WriteLine(Console.Read());

จากตัวอย่างด้านบน ให้อินพุตท์จากคีย์บอร์ดเป็น "abcd" ผลลัพธ์คือเมธอดจะส่งค่าเป็น integer กลับมาและแสดงบนแต่ละบรรทัด และตัวอักษรตัวสุดท้ายนั้นจะไม่ถูกแสดงเพราะเราได้เรียกเมธอด Read() เพียง 3 ครั้ง และมันจะนำไปเก็บตัวอักษร d ไว้ใน input buffer เมื่อมันเจอเมธอด Read() อีกครั้ง มันจะนำตัวอักษรที่ถูกเก็บออกมาให้กับเมธอดอัตโนมัติ

abcd
97
98
99

การใช้เมธอด ReadLine()

วิธีการรับค่าในภาษา C# ที่สะดวกที่สุดคือการใช้เมธอด ReadLine() เพื่ออ่านค่าจากคีย์บอร์ด มันสามารถใช้อ่าน string, integer, float, double เป็นต้น โดยเมธอดจะ return ค่ากลับมาเป็นสตริง ในการที่คุณต้องการอ่านค่าที่เป็นตัวเลข เราจำเป็นต้องใช้เมธอดในการแปลงสตริงให้เป็นตัวเลขก่อน

using System;

class BasicInputOutput
{
static void Main(string[] args)
{
String name;
int age;
double height;

name = Console.ReadLine();
int.TryParse(Console.ReadLine(), out age);
double.TryParse(Console.ReadLine(), out height);

Console.WriteLine("Name: {0}", name);
Console.WriteLine("Age: {0}", age);
Console.WriteLine("Height: {0}", height);
}
}

ในตัวอย่าง เรามีตัวแปร 3 ตัวและได้รับค่าให้กับมันโดยการเรียกใช้เมธอด ReadLine() เนื่องจากเมธอดนั้น return ค่าเป็น string สำหรับตัวเลขนั้นเราจำเป็นต้องใช้เมธอด TryParse() เพื่อแปลงไปเป็นประเภทข้อมูลที่ต้องการ เช่น int.TryParse() จะแปลงข้อมูลไปเป็น integer

James
25
7.1
Name: James
Age: 25
Height: 7.1

และนี่เป็นตัวอย่างทั้งการรับค่าและแสดงผลออกทางหน้าจอ

ในบทนี้ คุณได้เรียนรู้ในการรับและการแสดงค่าในภาษา C# ในพื้นฐาน โดยการใช้เมธอดจากไลบรารี่มาตรฐาน


บทความเกี่ยวกับ อินพุต เอาต์พุต พื้นฐาน

อินพุต เอาต์พุต พื้นฐาน ในภาษา C

ในบทเรียนนี้คุณจะได้เรียนเกี่ยวกับการรับค่าและการแสดงผลโดยการใช้ฟังก์ชันของภาษา C โดยปกติในการเขียนโปรแกรม เรามักจะมีการรับค่าและการแสดงผลจากผู้ใช้ ในการรับค่า...

อินพุต เอาต์พุต พื้นฐาน ในภาษา Java

ในการเขียนโปรแกรมนั้น สิ่งที่สำคัญคือการที่โปรแกรมสามารถติดต่อกับผู้ใช้ ซึ่งจะมีในสองลักษณะคือ Input คือการรับข้อมูลมาจากผู้ใช้ และนำมาประมวลผลในโปรแกรม และ Out...

อินพุต เอาต์พุต พื้นฐาน ในภาษา C++

สิ่งที่สำคัญที่สุดในการเขียนโปรแกรมคือ Input และ output ของโปรแกรม เพราะว่าทุกๆ โปรแกรมจำเป็นต้องติดต่อกับผุ้ใช้ ในภาษา C++ มันใช้ stream เพื่อทำการกับ input แล...

อินพุต เอาต์พุต พื้นฐาน ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้การรับค่าและการแสดงผลพื้นฐานในภาษา PHPในการเขียนโปรแกรม การติดต่อกับผู้ใช้นั้นเป็นส่วนหนึ่งที่สำคัญ เพื่อการแลกเปลี่ยนข้อมูลระหว่างผู้ใช...