ABA


"שאלה בג'אווה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #20284 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 20284
Michoo 
חבר מתאריך 13.4.03
1760 הודעות
   15:01   26.10.13   
אל הפורום  
  שאלה בג'אווה  
 
יש לי תרגיל שאני צריך לקבל מס' איברים אחד אחרי השני וכאשר יוכנס מס' כלשהו ספציפי,לדוגמא 0, המערכת תפסיק לקבל קלט מהמשתמש ותמשיך הלאה לשאר התוכנית.

איך אני עושה דבר כזה?,
אני יודע לקלוט איבר בודד באמצעות הscanner, אבל איך קולטים אינסוף?



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

  האשכול     מחבר     תאריך כתיבה     מספר  
  פשוט, עם לולאת WHILE שממתינה שהתו שהוכנס הוא 0 CaTz 26.10.13 15:05 1
  אז הפעולה getNextChar תגרום שהמשתמש ימשיך להכניס קלט בלי הפסקה? Michoo  26.10.13 15:39 2
     אתה רוצה לחזור על הפקודה כלשהי, במקרה הזה - scanner.next inno3D 26.10.13 15:46 3
         ברור שזה while וברור לי שזה הסקנר, אבל Michoo  26.10.13 17:00 4
             מכתב inno3D 26.10.13 17:09 5
             אם אתה רוצה בעצם לשמור את כל המספרים תשתמש באיזה ArrayList או משו בסגנון איציק2 26.10.13 18:56 6

       
CaTz
חבר מתאריך 2.10.04
14537 הודעות
   15:05   26.10.13   
אל הפורום  
  1. פשוט, עם לולאת WHILE שממתינה שהתו שהוכנס הוא 0  
בתגובה להודעה מספר 0
 
   כלומר מה שאתה עושה עד עכשיו, נניח זה קליטת תו אחת עם ה-scanner.
תשים את זה בתוך while שבודק האם התו שהוכנס הוא לא 0.

משהו אבסטרקטי כזה:


while(chr != '0')
{
char chr = scannner.getNextChar(); //סתם קוד פסאודו, לא זוכר איך זה הלך שם.
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Michoo 
חבר מתאריך 13.4.03
1760 הודעות
   15:39   26.10.13   
אל הפורום  
  2. אז הפעולה getNextChar תגרום שהמשתמש ימשיך להכניס קלט בלי הפסקה?  
בתגובה להודעה מספר 0
 



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   15:46   26.10.13   
אל הפורום  
  3. אתה רוצה לחזור על הפקודה כלשהי, במקרה הזה - scanner.next  
בתגובה להודעה מספר 2
 
   כל עוד מתקיים התנאי כלשהו (התנאי שהמשתמש לא הכניס 0)

הדרך לעשות את זה, זה ע"י לולאת while
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Michoo 
חבר מתאריך 13.4.03
1760 הודעות
   17:00   26.10.13   
אל הפורום  
  4. ברור שזה while וברור לי שזה הסקנר, אבל  
בתגובה להודעה מספר 3
 
שוב, מה שאני רוצה לעשות זה להכניס כמות לא יודעה של מספרים(int)
איך אני שומר אותם? את כל המספרים שנכנסו ושוב אני לא יודע כמה..



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   17:09   26.10.13   
אל הפורום  
  5. מכתב  
בתגובה להודעה מספר 4
 
  

Scanner scanner = new Scanner(System.in);
int num;
num = scanner.NextInt();

while (num != 0)
{
num = scanner.NextInt();
}



אתה לא רוצה לשמור את כל המספרים
אלא רק את המספר האחרון שהמשתמש מכניס
בודק אם הוא 0
אם לא, אתה קורא את המספר הבא
אם זה כן, אתה יוצא מהלולאה וממשיך בקוד


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
איציק2
חבר מתאריך 26.4.08
2436 הודעות
   18:56   26.10.13   
אל הפורום  
  6. אם אתה רוצה בעצם לשמור את כל המספרים תשתמש באיזה ArrayList או משו בסגנון  
בתגובה להודעה מספר 4
 
   ואם זה המספר שאתה צריך (כלומר לא 0) אז אתה פשוט דוחף אותו לרשימה.


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

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

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



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