פרק 2 - קלט ופלט
עד עכשיו כתבנו ערכים ישירות בתוך הקוד. זה טוב להתחלה, אבל תוכנית אמיתית צריכה גם להציג מידע למשתמש וגם לקבל ממנו נתונים. לשני הדברים האלה אנחנו קוראים פלט ו-קלט.
1. מה זה פלט ומה זה קלט?
פלט (Output): מידע שהתוכנית מציגה החוצה, בדרך כלל למסך.
קלט (Input): מידע שהתוכנית מקבלת מהמשתמש, למשל שם, גיל או ציון.
כשאנחנו כותבים System.out.println(), אנחנו מבקשים מהתוכנית להדפיס משהו למסך.
זהו פלט. בהמשך הפרק נלמד איך לקלוט נתונים מהמשתמש בעזרת Scanner.
2. פלט למסך עם println
הפקודה הנפוצה ביותר להצגת מידע למסך היא System.out.println().
כל מה שנכתוב בתוך הסוגריים יודפס למסך, ולאחר מכן הסמן יעבור לשורה הבאה.
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"); |
System.out.print("שלום ");
System.out.println("כיתה י'");
הפלט שיתקבל יהיה:
שלום כיתה י'
4. הדפסת משתנים
לא חייבים להדפיס רק טקסט קבוע. אפשר גם להדפיס משתנים שכבר יצרנו.
int age = 16;
String name = "Dana";
System.out.println(name);
System.out.println(age);
אפשר גם לשלב טקסט ומשתנים באותה שורת פלט בעזרת הסימן +.
int grade = 95;
System.out.println("הציון שלך הוא " + grade);
+ מחבר בין קטעי טקסט ויוצר
מחרוזת אחת ארוכה להצגה.
5. קלט מהמשתמש עם Scanner
כדי שהמשתמש יוכל להקליד נתונים, נשתמש במחלקה Scanner.
לפני שמשתמשים בה צריך לבצע ייבוא בעזרת השורה:
import java.util.Scanner;
אחר כך ניצור אובייקט של Scanner שיקרא את הנתונים מהמקלדת:
Scanner input = new Scanner(System.in);
Scanner הוא סוג המשתנה.
input הוא שם המשתנה שבחרנו.
new Scanner(System.in) יוצר קורא קלט חדש שמחובר למקלדת.
6. קריאת מחרוזת מהמשתמש
אם נרצה לקלוט טקסט שלם, נשתמש בפעולה nextLine().
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().
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. דוגמה מלאה: קלט ופלט ביחד
הנה תוכנית קצרה שמשלבת טקסט, מספר, קלט ופלט. זה כבר דומה מאוד לשאלות בסיסיות שמופיעות בתרגול של תיכון.
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. תרגול
מה יודפס למסך על ידי הקוד הבא?
int x = 3;
System.out.print("x = ");
System.out.println(x);
כתבו את הפקודה שמדפיסה למסך את הטקסט Hello, באמצעות println.
כתבו את שורת הקוד שיוצרת קורא קלט בשם input בעזרת Scanner.
כתבו שורת קוד שקולטת מספר שלם לתוך משתנה בשם age.
באמצעות println, כתבו פקודה שמדפיסה את הטקסט שלום ורווח אחריו, ואז את המשתנה name - הכל באותה שורה.