Brauche dringend Hilfe beim exception im Code



  • 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?

    Ich poste mal den ganzen Code
    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?
    }
    Ich wäre euch sehr dankbar, wenn ihr mir helfen könntet 😕
    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
    }



  • Das ist Java oder?



  • gute frage 🙂 ich konnt mich selber nciht entscheiden, bisher waren alle übungen in c++ und der code in der aufgabe sieht weder nach 1100% java noch nach 100% c++ aus. war deshalb total unentschlossen.
    was ich vergessen habe zu erwähnen, der Code ist obfuscated 😞



  • Mal wieder falsch gemacht. Such mal pumuckl und geh auf den Link in seiner Signatur. Traurig, ich formattier mal den Code

    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
    }
    


  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x, bzw. C++11) in das Forum Java verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Cheryy schrieb:

    Könnt ihr mir da weiterhelfen? x = e.toString().charAt(0) - e.toString().charAt(26) wird hier x nicht zu einem String?

    Da x als long deklariert ist, bleibt es auch ein long. Der Typ einer Variable kann nicht einfach so wechseln. Um diese Zeile zu verstehen, solltest du dir noch mal die charAt()-Methode der Klasse String angucken.



  • Vieeelen Dank 🙂


Anmelden zum Antworten