Brauche dringend hilfe beim exception im code

Cheryy

Mitglied
Hallo zusammen,
ich habe eine Aufgabe bis Montag. Es geht darum den Code zu verstehen und zu erklären. Eigentlich habe ich den Code verstanden bis auf eine Stelle. X muss als long zurückgegeben werden aber es geht eigentlich nicht da x zu letzt in einer try catch schleife zu einem String wird. Könnt ihr mir da weiterhelfen? x = e.toString().charAt(0) - e.toString().charAt(26) wird hier x nicht zu einem String? x würde als long wert bleiben das verstehe ich ja noch aber ich bekomme nich raus welchen wert x in der Exception zugewiesen bekommt?
Java:
public long k(int m) 
{ // m nehme ich als 2 
    long x = Math . sqrt (361) % 17 == 2 ? 0 : 1; // nach berechnung x = 0; 
    try 
    { 
        int p = '*' / (int)x;                  // '*' ist in ASCII 42 / 0 geht nicht 
    } 
    catch ( Exception e) 
    { 
        x = e. toString (). charAt (0) - e. toString (). charAt (26) ; // hier versteh ich nicht zu was x wird?
     } 
    int r = (int)e( 1, 1); //r = 1 nach berechnungen 
    while (r % (m+1) != 0) 
    { // für m =2 ergibt sich der wert 1 
        x = e(r, x); // diese Zeile versteh ich nicht,da x eigentl. long sein müsste aber ein String ist??
         r += '&' - '%'; // laut ASCI '&' = 38 - '%' = 37 also r = 2 
    } 
    return x; 
} 
public long e(int o, long v) 
{ 
    long r = o % 2 == 0 ? 4 : 2; // für o = 1 r = 2 
    long s = r % 2 == 0 ? 1 : 0; // für r =2 s = 1 
    return s * o * v; // =1 
}
wäre euch sehr dankbar wenn ihr mir helfen könntet?
:noe:
 
Zuletzt bearbeitet von einem Moderator:
x = e.toString().charAt(0) - e.toString().charAt(26) wird hier x nicht zu einem String?

Dann würde der Code sich nicht kompilieren lassen oder? 😀
Aber um deine Frage zu beantworten: NEIN!
e.toString() <-- hier zu dem Zeitpunkt existiert ein String, das ist korrekt
e.toString().charAt(0) <-- ist aber jetzt kein String mehr, sondern ein
Code:
char
Du hast also long x = char - andrer char
char = auch int
....
:rtfm:
 
Java:
long x = Math.sqrt (361) % 17 == 2 ? 0 : 1;
hat immer einen festen wert ... in dem fall 0 ...
also kannst du gleich
Java:
long x=0;
schreiben *macht der compiler übrigens auch* da sich dieser ausdruck und damit der wert nie ändert ...

dem entsprechend sind die folge-schritte auch sinnlos da IMMER der selbe wert rauskommen wird ...

also entweder hast du den code falsch abgeschrieben oder jemand wollte dich hier ärgern ...
 
Hallo 'irgendjemand' genau da hätte ich direkt 0 schreiben konnen aber in der aufgabe handelt es sich um code obfuscation.man verschleiert den code mit so unnotigen verlangern. danke fur den hinweis
 

Zurück
Oben