→ חזרו אחורה

פרק 2 - קלט ופלט

⏱ 8 דקות קריאה

עד עכשיו כתבנו ערכים ישירות בתוך הקוד. זה טוב להתחלה, אבל תוכנית אמיתית צריכה גם להציג מידע למשתמש וגם לקבל ממנו נתונים. לשני הדברים האלה אנחנו קוראים פלט ו-קלט.

1. מה זה פלט ומה זה קלט?

פלט (Output): מידע שהתוכנית מציגה החוצה, בדרך כלל למסך.

קלט (Input): מידע שהתוכנית מקבלת מהמשתמש, למשל שם, גיל או ציון.

כשאנחנו כותבים System.out.println(), אנחנו מבקשים מהתוכנית להדפיס משהו למסך. זהו פלט. בהמשך הפרק נלמד איך לקלוט נתונים מהמשתמש בעזרת Scanner.

2. פלט למסך עם println

הפקודה הנפוצה ביותר להצגת מידע למסך היא System.out.println(). כל מה שנכתוב בתוך הסוגריים יודפס למסך, ולאחר מכן הסמן יעבור לשורה הבאה.

Java

public class Main {
    public static void main(String[] args) {
        System.out.println("שלום עולם");
        System.out.println("אני לומד Java");
    }
}
            
שימו לב: טקסט חייב להיכתב בתוך מרכאות " ". בלי מרכאות Java תחשוב שמדובר בשם של משתנה, ותקבלו שגיאה.

3. מה ההבדל בין print ל-println?

שתי הפקודות מדפיסות למסך, אבל הן לא מתנהגות בדיוק אותו דבר.

פקודה מה היא עושה? דוגמה
System.out.println() מדפיסה ואז יורדת לשורה חדשה System.out.println("Hi");
System.out.print() מדפיסה ונשארת באותה שורה System.out.print("Hi");
Java

System.out.print("שלום ");
System.out.println("כיתה י'");
            

הפלט שיתקבל יהיה:

שלום כיתה י'

4. הדפסת משתנים

לא חייבים להדפיס רק טקסט קבוע. אפשר גם להדפיס משתנים שכבר יצרנו.

Java

int age = 16;
String name = "Dana";

System.out.println(name);
System.out.println(age);
            

אפשר גם לשלב טקסט ומשתנים באותה שורת פלט בעזרת הסימן +.

Java

int grade = 95;
System.out.println("הציון שלך הוא " + grade);
            
רעיון חשוב: כשאחד הצדדים הוא טקסט, הסימן + מחבר בין קטעי טקסט ויוצר מחרוזת אחת ארוכה להצגה.

5. קלט מהמשתמש עם Scanner

כדי שהמשתמש יוכל להקליד נתונים, נשתמש במחלקה Scanner. לפני שמשתמשים בה צריך לבצע ייבוא בעזרת השורה:

Java

import java.util.Scanner;
            

אחר כך ניצור אובייקט של Scanner שיקרא את הנתונים מהמקלדת:

Java

Scanner input = new Scanner(System.in);
            

Scanner הוא סוג המשתנה.

input הוא שם המשתנה שבחרנו.

new Scanner(System.in) יוצר קורא קלט חדש שמחובר למקלדת.

6. קריאת מחרוזת מהמשתמש

אם נרצה לקלוט טקסט שלם, נשתמש בפעולה nextLine().

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("הכנס את שמך: ");
        String name = input.nextLine();

        System.out.println("שלום " + name);
    }
}
            

שימו לב לסדר:

1. מדפיסים שאלה למשתמש.

2. קולטים את התשובה לתוך משתנה.

3. משתמשים במשתנה בהמשך התוכנית.

7. קריאת מספר שלם

אם רוצים לקלוט מספר שלם, משתמשים ב-nextInt().

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("הכנס את הגיל שלך: ");
        int age = input.nextInt();

        System.out.println("בעוד שנה תהיה בן/בת " + (age + 1));
    }
}
            
שימו לב: אם המשתנה הוא מסוג int, גם פעולת הקלט צריכה להתאים, כלומר nextInt(). חשוב להתאים בין סוג הנתון לבין סוג הקלט.

8. דוגמה מלאה: קלט ופלט ביחד

הנה תוכנית קצרה שמשלבת טקסט, מספר, קלט ופלט. זה כבר דומה מאוד לשאלות בסיסיות שמופיעות בתרגול של תיכון.

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("הכנס שם: ");
        String name = input.nextLine();

        System.out.print("הכנס ציון: ");
        int grade = input.nextInt();

        System.out.println("התלמיד/ה " + name + " קיבל/ה " + grade);
    }
}
            

9. טעויות נפוצות שכדאי להכיר

שכחתם import: אם לא כתבתם import java.util.Scanner;, התוכנית לא תזהה את Scanner.

קלט לא מתאים לסוג: אם תבקשו nextInt() והמשתמש יקליד טקסט, תתקבל שגיאה.

שכחתם מרכאות: טקסט חייב להיות בתוך " ".

שכחתם ; גם כאן כל פקודה מסתיימת ב-;.

למתקדמים קצת: בהמשך תפגשו מצבים שבהם משלבים nextInt() ואז nextLine(). לפעמים צריך "לנקות" את ירידת השורה שנשארה בקלט. כרגע מספיק להכיר את הרעיון, ונחזור אליו כשנעבוד עם תוכניות גדולות יותר.

🎓 זווית הבגרות

איך זה מופיע בבגרות: כמעט כל שאלת "כתבו תוכנית ש..." בבגרות בנויה מקלט → עיבוד → פלט - חשוב לזהות אילו משתנים מגיעים מהמשתמש ואילו מחושבים בתוך התוכנית.

סוג שאלה טיפוסי: קלט/פלט כמעט אף פעם לא נשאל בפני עצמו, אלא הוא המסגרת שבתוכה מוטמעת השאלה האמיתית (תנאים, לולאות, מערכים וכו').

טעות נפוצה: חוסר התאמה בין סוג הקלט לסוג המשתנה - למשל לנסות לשמור טקסט שהתקבל ישירות בתוך משתנה int בלי המרה מתאימה.

מה לזכור למבחן: ודאו שסוג הקלט תואם בדיוק לסוג המשתנה שמקבל אותו - אחרת התוכנית לא תתקמפל.

10. תרגול

מה יודפס למסך על ידי הקוד הבא?

Java
int x = 3;
System.out.print("x = ");
System.out.println(x);

כתבו את הפקודה שמדפיסה למסך את הטקסט Hello, באמצעות println.

כתבו את שורת הקוד שיוצרת קורא קלט בשם input בעזרת Scanner.

כתבו שורת קוד שקולטת מספר שלם לתוך משתנה בשם age.

באמצעות println, כתבו פקודה שמדפיסה את הטקסט שלום ורווח אחריו, ואז את המשתנה name - הכל באותה שורה.

פרק 1 - משתנים פרק 3 - תנאים