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

16 August 2016

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

การแสดงผลด้วยเมธอด System.out.println() และ System.out.print()

การแสดงผลข้อมูลที่ง่ายที่สุดในการเขียนโปรแกรมภาษา Java คุณสามารถใช้เมธอด System.out.println() และเมธอด System.out.print() เพื่อแสดงข้อความ ตัวเลข และค่าอื่นได้ สิ่งที่แตกต่างกันคือเมธอด System.out.println() จะขึ้นบรรทัดใหม่ด้วย มาดูตัวอย่างเพิ่มเติม

public class Output {
    public static void main (String[] atgs) {        

        System.out.print("MateoCode");
        System.out.println(" Tutorials");

        int number = 10;
        System.out.println("Number is " + number);

        float f = 43.12f;
        System.out.println("Floating number is " + f);

        boolean a = true;
        System.out.println(a);
    }
}

ในโปรแกรมเป็นการแสดงผลโดยการใช้เมธอดทั้งสองในการแสดงข้อมูลประเภทต่างๆ คุณจะเห็นว่าหลังจากแสดงคำว่า "MateoCode" โปรแกรมไม่ขึ้นบรรทัดใหม่เพราะว่าการทำงานของเมธอด System.out.print() ซึ่งจะได้ผลลัพธ์ดังนี้

MateoCode Tutorials
Number is 10
Floating number is 43.12
true

Escape Characters

ในภาษา Java นั้นตัวอักษรบางตัวนั้นไม่สามารถใช้เพื่อแสดงผลในรูแบบปกติได้ เพราะมันได้ถูกนำไปใช้สำหรับรูปแบบในภาษา หรือไม่เหมาะสมที่จะนำมาใช้โดยตรง จึงได้มีการกำหนดสัญลักษณ์ที่เรียกว่า Escape Sequence ขึ้นมาทดแทน เพื่อให้มันนำมาใช้ได้

นี่เป็นตารางของ Escape Characters ในภาษา Java

Escape Sequence NameSymbol
\tTab[Tab]
\bBackspace [Backspace ]
\nNewline [Newline]
\rCarriage [Enter]
\fFormfeed [Formfeed ]
\'Single quote'
\"Double quote"
\\Bbackslash \

ในตารางข้างบน เราก็สามารถนำมาใช้ร่วมกันกับเมธอดในการแสดงผลได้เช่นกัน เช่น \n ใช้สำหรับขึ้นบรรทัดใหม่ หรือ \t สำหรับ Tab มาดูตัวอย่างการใช้งาน

public class EscapeCharacters {
     public static void main (String[] atgs) {   
        // using newline (\n)
        System.out.print("Today, I went to a beach.\n");
        System.out.print("I see a lot of people in this\nweekend.");
        System.out.print("\n");
        // using tab (\t)
        System.out.println("MateoCode\ttutorials");
        System.out.println("is the best\ttutorial.");
    }
}

จากตัวอย่างเป็นการใช้ Escape Characters ในภาษา Java สังเกตุในโค้ดที่มีตัวหนา ซึ่งมันจะทำให้ได้ผลลัพธ์ดังนี้

Today, I went to a beach.
I see a lot of people in this
weekend.
MateoCode   tutorials
is the best tutorial.

ตอนนี้เราสามารถแสดงบรรทัดใหม่ได้ด้วย Newline (\n) คุณจะเห็นว่ามันค่อนข้างยากในการใช้งาน ดังนั้นเมธอด System.out.println() จึงช่วยให้คุณไม่ต้องใส่ \n ทุกครั้งนั่นเอง และจัดรูปแบบการแสดงผลให้ตรงกันด้วย Tab (\t)

การรับค่าจากคีย์บอร์ดด้วย Scanner class

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

import java.util.Scanner;

public class GettingInput {
    public static void main (String[] atgs) {   

        Scanner sn = new Scanner(System.in);

        String name;  
        int number;

        System.out.println("\tGreeting program");

        System.out.print("Enter your name: ");
        name = sn.next();

        System.out.print("Enter your favorite number: ");
        number = sn.nextInt();

        System.out.print("Hello " + name);
        System.out.println(", your favorite number is " + number);

    }
}

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

Scanner sn = new Scanner(System.in);

โดยการใส่อากิวเมนต์ System.in สำหรับการรับค่าจากคีย์บอร์ด และในการใช้คลาสนี้ คุณจะต้องทำการ import package library ของภาษา Java เข้ามายังโปรแกรม โดยการใช้คำสั่ง import ทำการนำเข้า package มายังโปรแกรม

import java.util.Scanner;

ต่อไปเราใช้เมธอด sn.next(); ในการอ่านค่าชื่อเข้ามายังตัวแปร name และอ่านค่าตัวเลขด้วยเมธอด sn.nextInt(); มาเก็บไว้ในตัวแปร number ในการรับค่านั้นเมื่อกดปุ่ม Return จะเป็นการสิ้นสุดการรับค่าของคำสั่งนั้น และค่าที่รับเข้ามาควรถูกต้องในรูปแบบของเมธอดที่เรียกใช้

Note: sn.nextLine() ที่คุณเห็นนั้นคือการโปรแกรมแบบออบเจ็คที่คุณจะได้เรียนในภายหลังของบทเรียนนี้ ในตอนนี้แค่เข้าใจว่ามันคือวิธีในการรับข้อมูล ไม่ต้องกังวลเกี่ยวกับเรื่องนี้ถ้าคุณยังไม่เข้าใจในตอนนี้

และหลังจากโปรแกรมรัน จะได้ผลลัพธ์ดังนี้ โดยผลลัพธ์นั้นจะรวมข้อมูลที่ผู้ใช้กรอกด้วย ซึ่งจะเป็นตัวหน้า

    Greeting program
Enter your name: Marcus
Enter your favorite number: 16
Hello Marcus, your favorite number is 16

ยังมีเมธอดต่างๆ อีกในคลาส Scanner ที่คุณสามารถใช้ได้ เช่น เมธอด nextFloat() รับค่าตัวเลขทศนิยม หรือเมธอด nextLine() รับค่า String ทีละบรรทัด คุณสามารถดูได้โดยการใช้ Auto Suggestion ใน IDE ที่คุณใช้ โดยการพิมพ์ sn. แล้วจะมีเมธอดและ property ต่างแสดงขึ้นมาให้คุณเลือกใช้พร้อมคำอธิบายการใช้งานคุณใช้เคล็ดลับนี้ได้กับทุกบทในบทเรียนนี้

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

บทความนี้เป็นประโยชน์หรือไม่? Yes · No