עצירת קלט integer במערך (java)

sammy s

New member
עצירת קלט integer במערך (java)

שלום לכולם

אני מבקש לקלוט מספרים לתוך מערך, כאשר תנאי העצירה יהיה מערך מלא (כאן אין בעיה כמובן)

או קלט שאינו מספר, כלומר אות מסוימת או c^

איך עושים את זה?
 

Guy Yafe

New member
לולאת for בגודל המערך

ובמקרה שאין מספר, פקודת break
לגבי ^C: זה יפסיק את כל התכנית. אני לא יודע אם ואיך ניתן למסך את הסיגנל הזה בJAVA.
 

sammy s

New member
זה בדיוק מה שאני שואל

איך אני כותב פקודה שבמקרה שאין מספר יפסק הקלט
 

Guy Yafe

New member
באמצעות הפקודה break

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

for(int index = 0; index < size of Array; index++){
Get input form user
if(condition to stop the loop){
break;
}
}

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

sammy s

New member
תודה, ואעשה נסיון נוסף להסביר את עצמי

אני לא שואל איך להפסיק לולאה, את זה אני כבר יודע

אני שואל איך אני מזהה שהקלט הוא אינו integer אלא char
 

BravoMan

Active member
השאלה היא איך אתה קולט.

למשל, אם אתה משתמש במחלקה Scanner, יש לה מתודה לבדוק עם יש עוד קלט: hasNext.
יש לה אפילו מתודה מדויקת לבדוק אם קיים עוד מספר בקלט hasNextInt.

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

אלעדק

New member
אתה גם יכול לתפוס NumberFormatException

לנסות לפרסר את הקלט ולתפוס exception אם נזרק



try
{
int a = Integer.parseInt(numberEntered);
}
catch(NumberFormatException nfe)
{
return false;
}
return true;
}
 
למעלה