Interger Variable referenzieren?

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi @ all,

erstmal super Forum hier, hat mir schon oft geholfen!
Jetzt muss ich aber doch mal nen eigenen post machen, hab dazu nichts via SuFu gefunden...
Und zwar:
Kann ich eine ganz normale int Variable (innerhalb der main methode) mittels einer zweiten int Variable referezieren ? ???:L So wie bei Ojekten oder String Variablen eben (ja ich weiss das sind ja eigentlich auch Objekte^^)

Bräuchte das unbedingt...

Danke schonmal für eure Hilfe!
 
nur den Teil dass man ints anders als Objekte nicht weitergeben kann
(Call by Reference/ Value),
insofern ein Teiltipp, mehr verstehe ich auch nicht

Integer ist unveränderlich und hift somit in machen Situationen auch wenig zur Werteübergabe,
aber so in der Art, eine eigene Klasse MyInteger eben
 
Bei mir hat's ehrlich gesagt mit dem Hinweis auf String aufgehört.
Denn wenn es sich um ein Problem dieser Art handelt, was hilft dann ein unveränderlicher String?
Naja, vielleicht hilft dein Array Tipp ja... :bahnhof:
 
ok nochmal von neuem hab mich wohl etwas schlecht ausgedrückt ... 😳

alsoo:

es handelt sich um ein mehr oder weniger stumpfsinniges schulprojekt das wir nur mit hilfe von for schleifen und if/case verzweigungen lösen dürfen, keine arrays, methoden (ausser main versteht sich ), mehrere klassen etc, ALLES in der main methode :autsch:

naja am besten zeig ich es am Beispiel:

Code:
 switch (eingabeS) {
                                    
                                    case 11:
                                        platz11='x' ;
                                        platz11=gesetzt;
                                        break;
                                    case 12:
                                        platz12='x' ;
                                        platz12=gesetzt;
                                        break;
                                    case 13:
                                        platz13='x' ;
                                        platz13=gesetzt;
                                        break;
                                    case 21:
                                        platz21='x' ;
                                        platz21=gesetzt;
                                        break;
                                    case 22:
                                        platz22='x' ;
                                        platz22=gesetzt;
                                        break;
                                    case 23:
                                        platz23='x' ;
                                        platz23=gesetzt;
                                        break;
                                    case 31:
                                        platz31='x' ;
                                        platz31=gesetzt;
                                        break;
                                    case 32:
                                        platz32='x' ;
                                        platz32=gesetzt;
                                        break;
                                    case 33:
                                        platz33='x' ;
                                        platz33=gesetzt;
                                        break;
                                    default:
                                        System.out.println("Falsche eingabe, bitte wiederholen!");
                                        
                                        if (kessel) {
                                       	gesetzt='o';
                                        }

ich bin mir natürlich darüber im klaren das ich so nur die Kopie der variable ändere, "gesetzt" soll also nicht eine koie von platzX haben sondern platzX nur referenzieren!

Jetzt klar?
 
Erstmal vorneweg:

Es wäre nett, wenn du mir (meinetwegen per PN) die Mail-Adresse von demjenigen zukommen läßt, der euch sowas machen läßt.
Falls er eine Mail-Adresse hat. Und seine Post nicht mit einer Postkutsche bekommt. Oder so.


Zur Frage:

Wo soll die Zeile mit dem "if (kessel)..." stehen? Die steht ja vmtl. nicht im default-Block der Switch-Anweisung, oder?

Man könnte das grundsätzlich mit einer Art "MutableChar" lösen
Code:
class MutableChar
{
   char value;
}
...

MutableChar platz11 = new MutableChar();
MutableChar platz12 = new MutableChar();
...
MutableChar gesetzt;

switch (eingabeS) {
    case 11:
        platz11.value = 'x';
        platz11=gesetzt;
        break;
    case 12:
        platz12.value = 'x';
        platz12=gesetzt;
        break;
...
if (kessel) {
    gesetzt.value='o'; // Hier wird dann z.B. die value von platz11 gesetzt (je nach eingabeS)
}

Aber das ist ziemlicher Unfug - man sollte sehen, ob man das nicht besser machen kann.
 
Sry, die emailadresse hab ich leider nicht :lol: Aber unser Gemecker hat auch nichts genützt...

Ja so ergibt das zwar sinn, aber verstößt ja wieder gegen seine seltsame Regel....

kessel ist eine boolean variable die weiter oben deklariert wurde, sie macht aber auch nichts spezielles ausser einige Felder zu überprüfen (Es handelt sich hierbei um ein TicTacToe ähnliches Spiel wie man vllt an den x und o´s erkennen kann, nur etwas komplexer...)

Aber Danke für deine Hilfe!
 
man könnte es mal mit nem enum oder zwei arrays versuchen, ein boolean und ein char z.b. und dann brauchste auch den riesigen switch block nich mehr
 
Ja, keine weiteren Klassen, und keine Arrays, sorry. Aber natürlich kannst du sowas machen wie
Code:
switch (eingabeS) {
                                   
                                    case 11:
                                        platz11='x' ;
                                        break;
                                    case 12:
...
                                    default:
                                        System.out.println("Falsche eingabe, bitte wiederholen!");
                                       
                                        if (kessel) {

                                          switch (eingabeS) // Hier drin nochmal diesen riesen-switch-scheißdreck von oben...
                                          {
                                             platz11='o' ;
                                             break;
                                             ...
                                          }

                                       }

Nochmal: Die zurückhaltendste Beschreibung, die mir dafür einfallen würde, wäre "absoluter Bockmist". Wenn aber irgendwie die Möglichkeit bestehen würde, zu dem "Verantwortlichen" Kontakt aufzunehmen, würde ich versuchen, ihm NOCH zurückhaltender (und "sachlicher") klarzumachen, dass das in dieser Form "nicht besonders sinnvoll" ist, und ggf. fragen, was er damit bezwecken will.

Falls diese Möglichkeit nicht besteht, dann frag' ihn mal ganz naiv (also BEWUSST naiv klingend, und nicht mit dem angemessenen zynischen oder diskreditierenen Unterton) ob er diese Anforderungen stellt, weil er komplexere Datenstrukturen (wie zum Beispiel Arrays :shock: ) nicht versteht.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben