המשימה
כתוב פעולה בשם getNum שמקבלת מספר שלם max, וקולטת מהמשתמש מספר שלם בין
1 ל-max (כולל). אם המספר שהוזן מחוץ לתחום — הפעולה תקלוט שוב ושוב, עד
שייקלט מספר תקין. לבסוף היא תחזיר את הקלט התקין.
זוהי תבנית מסננת קלט, והיא חוזרת בכל תכנית שמקבלת נתונים ממשתמש.
ריצה לדוגמה עבור getNum(50):
120
Invalid, try again
-3
Invalid, try again
17
והערך המוחזר הוא 17.
הנחיות:
• הפעולה מחזירה את הערך ואינה מדפיסה אותו. ההדפסה נעשית ב-main על
הערך המוחזר. פעולה שמדפיסה במקום להחזיר אינה שמישה מחדש.
• מותר ורצוי להדפיס הודעת שגיאה בין ניסיונות — זה חלק מהממשק, לא
התוצאה.
• הקליטה הראשונה מתבצעת לפני הבדיקה הראשונה. אין דרך לבדוק ערך שלא
נקלט עדיין.
• הקליטה חייבת להתבצע שוב בתוך הלולאה, אחרת התכנית תיתקע.
• הגבולות 1 ו-max עצמם תקינים.
```ds:table
{"title":"ריצה לדוגמה עבור max=50","rows":[["קלט","בתחום?","פעולה"],["120","לא","קולטים שוב"],["-3","לא","קולטים שוב"],["17","כן","מחזירים 17"]]}
```
קוד הפתיחה
import java.util.Scanner;
public class Main {
public static int getNum(int max) {
Scanner sc = new Scanner(System.in);
// כתוב את הפתרון כאן — קולט עד שהערך בתחום, ומחזיר אותו
return 0;
}
public static void main(String[] args) {
System.out.println(getNum(50));
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.