ABA


"Java - מה לא בסדר בקטע הפשוט הבא?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #20912 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 20912
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   14:42   04.10.14   
אל הפורום  
  Java - מה לא בסדר בקטע הפשוט הבא?  
 
   אני מנסה לקלוט למערך (שהמת'וד שקיבל בפרמטר) מספרים שלמים מהמשתמש עד שהוא מכניס 0.
התוכנית נותנת לי להכניס מספרים למערך הראשון, אבל כשהתוכנית קוראת למת'וד בפעם השניה, עם המערך השני, אני מקבל את השגיאה הבאה כשהתוכנית מנסה לקלוט מספר:
Exception in thread "main" java.util.NoSuchElementException

מישהו יודע מה אני עושה לא נכון?

תודה



import java.util.Scanner;

public class Foo {
public static void main(String[] args) {
int[] array1 = new int[100];
int[] array2 = new int[100];
scanIntsToArray(array1, 1);
scanIntsToArray(array2, 2);
}

private static void scanIntsToArray(int[] arr, int arrNumber) {
Scanner input = new Scanner(System.in);
int i = 0;
do {
System.out.printf("Enter numbers for array%d (or 0 to finish): ", arrNumber);
arr[i] = input.nextInt();
i++;
}
while(arr[i-1] != 0);
input.close();
}



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הבעיה אצלך זה שאתה מנסה לסגור את ה stream IDAN_500  04.10.14 18:03 1
     היי עידן, שתי שאלות: liranh  04.10.14 19:08 2
         תראה פה: asco88  04.10.14 20:15 3
             עכשיו הכל ברור. תודה רבה לשניכם! liranh  04.10.14 21:06 4
  בלי קשר, שים לב גם שאתה מקצה 100 אבל לא אוכף את זה בשום שלב ldan192  04.10.14 21:36 5
     תודה על האבחנה עידן, אבל זה בדיוק מה שהמורה ביקש :) liranh  04.10.14 23:26 6
         בסה''כ תוסיף תנאי קטן.. asco88  05.10.14 11:05 7
             כן אני יודע אחי, אבל כתבו במפורש בהוראות: liranh  05.10.14 12:44 8
                 וואלה סבבה asco88  05.10.14 15:07 9

       
IDAN_500 
חבר מתאריך 11.12.03
2321 הודעות, דרג אמינות חבר זה
   18:03   04.10.14   
אל הפורום  
  1. הבעיה אצלך זה שאתה מנסה לסגור את ה stream  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 04.10.14 בשעה 18:08 בברכה, IDAN_500
 
כשאתה סוגר אותו אתה בעצם סוגר בנוסף את כל System.in, ואז במערך השני ברגע שאתה מנסה לקלוט משהו חדש מהמשתמש, נזרק לך ה exception


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   19:08   04.10.14   
אל הפורום  
  2. היי עידן, שתי שאלות:  
בתגובה להודעה מספר 1
 
   - למה אני לא יכול לסגור את ה-Scanner ולפתוח אותו שוב אחרי זה? מה הבעייה עם זה?
- סגירת ה-Scanner לא אמורה להיות חלק מהמת'וד? הרי המת'וד פתח אותו... או שבכלל כדאי ליצור את ה-Scanner ב-main ולהעביר למתו'ד את ה-reference אליו כ-argument?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   20:15   04.10.14   
אל הפורום  
  3. תראה פה:  
בתגובה להודעה מספר 2
 
http://stackoverflow.com/questions/13042008/java-util-nosuchelementexception-scanner-reading-user-input

אני חושב שהפתרון היחידי הוא כמו שאמרת, לשלוח מהתוכנית הראשית ולסגור בסוף התוכנית הראשית.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   21:06   04.10.14   
אל הפורום  
  4. עכשיו הכל ברור. תודה רבה לשניכם!  
בתגובה להודעה מספר 3
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:36   04.10.14   
אל הפורום  
  5. בלי קשר, שים לב גם שאתה מקצה 100 אבל לא אוכף את זה בשום שלב  
בתגובה להודעה מספר 0
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   23:26   04.10.14   
אל הפורום  
  6. תודה על האבחנה עידן, אבל זה בדיוק מה שהמורה ביקש :)  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   11:05   05.10.14   
אל הפורום  
  7. בסה''כ תוסיף תנאי קטן..  
בתגובה להודעה מספר 6
 
שגם i יהיה קטן מ-100.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   12:44   05.10.14   
אל הפורום  
  8. כן אני יודע אחי, אבל כתבו במפורש בהוראות:  
בתגובה להודעה מספר 7
 
  

In this simple exercise, you don't have to consider an error condition in case the number of integers entered are greater than 100 (thus causing your program to crash).


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   15:07   05.10.14   
אל הפורום  
  9. וואלה סבבה  
בתגובה להודעה מספר 8
 
אם זה ההוראות זה ההוראות


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net