הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   צריך עזרה [JAVA] (https://hosts.co.il/forums/showthread.php?t=36182)

nanadav 14-12-06 19:06

צריך עזרה [JAVA]
 
שלום לכולם, יש לי עבודה להגיש, עשיתי את החלק הראשון ולפי הבדיקה יש שגיאה שאין לי מושג איך לסדר...
לצפייה בתוכנית ובשגיאה לחץ כאן
יש פה עוד משתנים שלא בשימוש כי זה רק ההתחלה של התוכנית.
תודה לעוזרים :)

בניה 14-12-06 19:19

אתה יכול להעתיק לפה את הקוד?

nanadav 14-12-06 19:24

ציטוט:

נכתב במקור על ידי בניה (פרסם 388563)
אתה יכול להעתיק לפה את הקוד?

קוד:

התוכנית:
/*
 *
 */
public class Hanuka {
        public static void main(String[] args){
        char finish, peola;
        int darga, suma=0, sumb=0, sumc=0, randoma, randomb, toza;
        peola=IO.readChar ("press peola");
        darga=IO.readInt ("press darga:");
        if (peola>='A' && peola<='C' && darga>=1 && darga<=3){
                if (peola=='A' && darga==1)
                randoma=0>=(int)(Math.random()*11)<=10;
                randomb=0>=(int)(Math.random()*11)<=10;
                IO.write(randoma);
                IO.write("+");
                IO.write(randomb);
                IO.write("=");
                toza=IO.readInt ("tozaa:");
                if(toza==randoma+randomb)
                IO.writeln ("good");
                suma=suma+5;
                else
                IO.writeln ("not good, the tozaa="+randoma+randomb);}
               
               
       
}       
}

השגיאה:
--------------------Configuration: Hanuka - j2sdk <Default>--------------------
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:12: operator <= cannot be applied to boolean,int
                randoma=0>=(int)(Math.random()*11)<=10;
                                                  ^
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:13: operator <= cannot be applied to boolean,int
                randomb=0>=(int)(Math.random()*11)<=10;
                                                  ^
2 errors

Process completed.


בניה 14-12-06 19:57

תנסה לעטוף את זה בסוגריים:
קוד:

(int)(Math.random()*11)
((int)(Math.random()*11))


mlnn 14-12-06 20:51

קוד:

                if(toza==randoma+randomb)
                IO.writeln ("good");
                suma=suma+5;
                else
                IO.writeln ("not good, the tozaa="+randoma+randomb);}

איפו הסוגריים של הIF של הELSE?
גם בIF השני אני חושב ששכחת סוגריים.

nanadav 14-12-06 23:08

תיקנתי לפי מה שאמרת והשגיאה נשאר והתווסף שגיאה ב else

התיקון:
קוד:

/*
 *
 */
public class Hanuka {
        public static void main(String[] args){
        char finish, peola;
        int darga, suma=0, sumb=0, sumc=0, randoma, randomb, toza;
        peola=IO.readChar ("press peola");
        darga=IO.readInt ("press darga:");
        if (peola>='A' && peola<='C' && darga>=1 && darga<=3){
                if (peola=='A' && darga==1)
                randoma=0>=((int)(Math.random()*11))<=10;
                randomb=0>=((int)(Math.random()*11))<=10;
                IO.write(randoma);
                IO.write("+");
                IO.write(randomb);
                IO.write("=");
                toza=IO.readInt ("tozaa:");}
          { if(toza==randoma+randomb)
                IO.writeln ("good");
                suma=suma+5;
                else
                IO.writeln ("not good, the tozaa="+randoma+randomb);}
               
               
       
}       
}

השגיאה:
קוד:

--------------------Configuration: Hanuka - j2sdk <Default>--------------------
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:22: 'else' without 'if'
                else
                ^
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:12: operator <= cannot be applied to boolean,int
                randoma=0>=((int)(Math.random()*11))<=10;
                                                    ^
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:13: operator <= cannot be applied to boolean,int
                randomb=0>=((int)(Math.random()*11))<=10;
                                                    ^
3 errors

Process completed.


mlnn 14-12-06 23:24

שוב, אותה בעיה.
כאשר אתה משתמש בIF ולא משתמש ב{} אז אם התנאי מתקיים, רק השורה הבאה תתבצע, לדוגמא:
קוד:

if(x==y)
System.out.println("a");
System.out.println("b");

אז במקרה הנל, רק אם x=y זה ידפיס A, וB זה תמיד ידפיס כי אין לזה שום קשר לIF.

לעומת זאת:
קוד:

if(x==y) {
System.out.println("a");
System.out.println("b");
}

זה ידפיס A וגם B רק אם התנאי מתקיים (x==y).

אותו דבר לגבי הELSE:
קוד:

if(x==y)
System.out.println("a");
System.out.println("b");
else
System.out.println("b");

יחזיר לך שגיאה, מכיוון שהIF מתקיים רק לשורה הראשונה כי אין {}.
אבל,
קוד:

if(x==y)
System.out.println("a");
else
System.out.println("b");

יפעל, וגם זה יפעל: ( כמובן שהתוצאה תהיה שונה... )
קוד:

if(x==y) {
System.out.println("a");
System.out.println("b");
} else
System.out.println("b");

[ וגם אם אתה רוצה ELSE מעל לשורה תשתמש שוב ב{} ]

nanadav 14-12-06 23:38

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

        if (peola>='A' && peola<='C' && darga>=1 && darga<=3){
                if (peola=='A' && darga==1)
                randoma=0+(int)(Math.random()*11);
                randomb=0+(int)(Math.random()*11);
                IO.write(randoma);
                IO.write("+");
                IO.write(randomb);
                IO.write("=");
                toza=IO.readInt ("tozaa:");}
            if(toza==randoma+randomb){
                IO.writeln ("good");
                suma=suma+5;}
                else
                IO.writeln ("not good, the tozaa="+randoma+randomb);

אבל אז הוא מביא לי שגיאות בקשר לרנדומים:
קוד:

--------------------Configuration: Hanuka - j2sdk <Default>--------------------
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:14: variable randoma might not have been initialized
                IO.write(randoma);
                        ^
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:19: variable toza might not have been initialized
            if(toza==randoma+randomb){
              ^
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:19: variable randoma might not have been initialized
            if(toza==randoma+randomb){
                    ^
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:19: variable randomb might not have been initialized
            if(toza==randoma+randomb){
                            ^
4 errors

Process completed.

אם אני מוסיף {} גם ל ELSE הוא משאיר לי את אותה שגיאה שהייתה קודם לכן בELSE.

mlnn 14-12-06 23:52

לא פתחת { ב:
if (peola=='A' && darga==1)

nanadav 14-12-06 23:56

השגיאה של ה ELSE נעלמה אבל הגיעה שגיאה אחרת =\
קוד:

        if (peola>='A' && peola<='C' && darga>=1 && darga<=3){
                if (peola=='A' && darga==1){
                randoma=0+(int)(Math.random()*11);
                randomb=0+(int)(Math.random()*11);
                IO.write(randoma);
                IO.write("+");
                IO.write(randomb);
                IO.write("=");
                toza=IO.readInt ("tozaa:");}
            if(toza==randoma+randomb){
                IO.writeln ("good");
                suma=suma+5;}
                else
                IO.writeln ("not good, the tozaa="+randoma+randomb);
        }
}

השגיאה:
קוד:

--------------------Configuration: Hanuka - j2sdk <Default>--------------------
D:\JCreator\MyProjects\Test\Hanuka\Hanuka.java:25: '}' expected
}               
 ^
1 error

Process completed.



כל הזמנים הם GMT +2. הזמן כעת הוא 12:29.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ