עזרה די בסיסית בJAVA
-
אני מנסה לכתוב קוד שאמור להיות די פשוט, אבל כנראה בגלל שאני מתחיל - עשיתי טעויות שאני לא מצליח לתקן אותם.
מה הקוד אמור לעשות?
בגדול, הוא אמור להדפיס למשתמש מספר, והמשתמש צריך להקליד את המספר שהוא חושב שכשהמחשב יחבר את שני המספרים התוצאה תהיה 237.
אם זה נכון, המחשב מדפיס "sucsess you great". אם לא, הוא מדפיס את התוצאה שיצאה, כותב שזו שגיאה ומציע לחזור מההתחלה.
אז הנה הקוד/* * date: 26 tishrey 5783 */ import java.util.*; public class inputOutputBot { /* * Declaration of the variables */ int a, b, c, retryCheck; Scanner s = new Scanner(System.in); int a = 3; String wellcome = "Wellcome. nice to meet you. my name is inputOutputBot"; String savedNumber = "My number is "; String ask = "please choose a number. note! the sum of our numbers, must be 237"; String sucsess = "sucsess :) you great!"; String fail = "fail :) retry?"; String chooseRetry = "if you want to retry, type 1. if you don't want to retry, type 2"; /* * program code */ System.out.println(wellcome); System.out.print(savedNumber +a); System.out.println(ask); int b = s.nextInt(); int c = a + b; if (c == 237) { System.out.println(sucsess); } else { System.out.println("c is equal to " + num1); System.out.println(fail); String chooseRetry = "if you want to retry, type 1. if you don't want to retry, type 2"; int retryCheck = s.nextInt(); if (retryCheck == 1) { inputOutputBot(); } else if (retryCheck == 2) { System.out.println("goodbye"); } else { System.out.println("System eror!"); } } }
והנה השגיאות (התחלתי עם 16 והצלחתי לפתור 7. את האחרות אני לא מבין איפה השגיאה)
PS C:\Users\myuser\IdeaProjects\firstproject> java nine.java nine.java:22: error: <identifier> expected System.out.println(wellcome); ^ nine.java:22: error: <identifier> expected System.out.println(wellcome); ^ nine.java:23: error: <identifier> expected System.out.print(savedNumber +a); ^ nine.java:23: error: <identifier> expected System.out.print(savedNumber +a); ^ nine.java:24: error: <identifier> expected System.out.println(ask); ^ nine.java:24: error: <identifier> expected System.out.println(ask); ^ nine.java:27: error: illegal start of type if (c == 237) { ^ nine.java:27: error: <identifier> expected if (c == 237) { ^ nine.java:29: error: illegal start of type } else { ^ 9 errors error: compilation failed
-
@LindoorsOS יש עוד מחלקות בתוכנית הזו?
יש כאן כמה שגיאות:
לפני הכל כדי שירוץ צריך שיהיה מתודה main.public static void main(String[] args)
- ברגע שהצהרת על משתנה (נניח int a ) אי אפשר לכתוב שוב int a. כדי להשתמש בו אתה כותב רק את שם המשתנה. (יש הרבה משתנים בקוד שזה לא טוב.
2 שורה 29. לא הצהרת על משתנה num1.
3 שורה 34. לא הבנתי מה אתה רוצה לעשות שם אבל, כדי ליצור מופע של מחלקה, עליך להשתמש ב-new.
4 שורה 31. לא שגיאה אבל אתה מצהיר על chooseRetry ואתה לא משתמש בו בשום מקום.
הסיבה לכל שאר השגיאות (שרק אלו מופיעות אצלך בלוג של השגיאות) הוא שה-print וה-if למשל מופיעות אצלך לא בתוך מתודה או בלוק קוד.
class יכול להכיל.- בלוק קוד {}
- משתנים.
- constructors.
- מתודות (פונקציות).
-
@Shloimy כתב בעזרה די בסיסית בJAVA:
3 שורה 34. לא הבנתי מה אתה רוצה לעשות שם אבל, כדי ליצור מופע של מחלקה, עליך להשתמש ב-new.
תודה רבה.
לגבי זה, זה בסה"כ חוזר לראש - שולח לקלאס הראשי (כמו go to className() [במקום className, שם הקלאס כמובן] בפייתון) -
הנה הקוד המתוקן (קרדיט לכל המסייעים!)
/* * date: 26 tishrey 5783 */ import java.util.*; class Main { public static void main(String[] args) { /* * Declaration of the variables */ Scanner s = new Scanner(System.in); int a = 3; String wellcome = "Wellcome. nice to meet you. my name is inputOutputBot"; String savedNumber = "My number is "; String ask = "please choose a number. note! the sum of our numbers, must be 237"; String sucsess = "sucsess :) you great!"; String fail = "fail :) retry?"; String chooseRetry = "if you want to retry, type 1. if you don't want to retry, type 2"; /* * program code */ System.out.println(wellcome); System.out.print(savedNumber +a); System.out.println(ask); int b = s.nextInt(); int c = a + b; if (c == 237) { System.out.println(sucsess); } else { System.out.println("the sum is " +c); System.out.println(fail); System.out.println(chooseRetry); int retryCheck = s.nextInt(); if (retryCheck == 1) { main(new String[0]); } else if (retryCheck == 2) { System.out.println("goodbye"); } else { System.out.println("System eror!"); } }} }
-
@Mordechay אתה צודק (חלקית... לא משנה) וזה כנראה מה שבלבל אותי. בכל מקרה, מה שיש כאן זה קטע קוד לJAVA על המחשב, לא לאפליקציה
-
@Mordechay כתב בעזרה די בסיסית בJAVA:
זה בתכנות לא באפליקציות...
דיברתי על הקוד שהביאו כאן. לא לאפליקציות.
@LindoorsOS כתב בעזרה די בסיסית בJAVA:
לגבי זה, זה בסה"כ חוזר לראש - שולח לקלאס הראשי (כמו go to className() [במקום className, שם הקלאס כמובן] בפייתון)
זה יוצר מופע חדש של inputOutputBot לא חוזר לראש.