Was sind return-Anweisungen beim Hamstersimulator?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Naja return ist eigentlich recht simpel. Jede methode, welche nicht void ist benötigt einen return. Der return wird benötigt damit die methode etwas herausgibt. Also alles was hinter dem return steht wird rausgegeben wenn die methode aufgerufen wird. Ein beispiel: public int example() { int result = 1+4; return result; } Wenn du diese methode nun aufrufst wird sie dir den wert der Variable result geben, in diesem Fall 5. Ich hoffe ich habe damit auf deine Frage geantwortet. :)

eigentlich habe ich mir mühe gegeben abschnitte zu machen und alles zu struckturieren, aber das scheint wohl unnötige arbeit gewesen zu sein :/

0

Nicht ganz richtig. In den Fall wird nicht die Variable, sondern der Wert zurückgegeben. Nur bei Objekten wird die Referenz übergeben.

0

Doch die variable wird zurückgegeben, in diesem fall ist sie lediglich konstant.

0

Die Methode wird durch return mit einem bestimmten Wert verlassen. Wenn der Rückgabewert void ist, wird nichts zurückgegeben.

int getNumber() {
return 3;
}

Diese Methode gibt den Wert 3 zurück. Du kannst sie dementsprechend wie eine Zahl im Code behandeln:

int x = getNumber();
/*x ist jetzt 3*/

danke für die schnellen antworten

0

Java Hamster Simulator Problem

Was ist der Fehler an diesem Code?

boolean linksFrei() { linksUm(); if (vornFrei()) return true else linksUm(); } void main() { linksFrei(); }

Fehler: error: ';' expected if (vornFrei()) return true Zeile: 4

...zur Frage

Wie könnte die Methode SlowSort nur mit einem Parameter implimentiert werden?

Hallo,

Ich muss die MethodeSlowSort auf Java implimentiert.Und zwar muss die Methode nur das Array als Parameter haben.

So schaut meine Code aus:

private static void slowSort(int[] array) {

    int i = 0;
    int tmp;
    int j = array.length;
    if (i >= j){
        return;
    }
    else{
    int m = (i+j) / 2;
    int [] array1 = Arrays.copyOfRange(array,0,m);
    int [] array2 = Arrays.copyOfRange(array, m+1, j);
    
    slowSort(array1);
    slowSort(array2);
    
     if (array1[array1.length] > array2[array2.length]){
        tmp = array1[array1.length];
        array1[array1.length] = array2[array2.length];
        array2[array2.length] = tmp;
     }
    }
    j--;
    slowSort(array);
}
  1. Meine Code kompiliert nicht.

(bei der copyOfRang wird java.lang.ArrayIndexOutOfBoundsException gezeigt) das kann ich noch korrigieren.

  1. habt ihr verbesserungsvorschläge?

Danke im Voraus :)

...zur Frage

Sieb des Eratosthenes Fehler?

Bin blutiger c++ anfänger und mir wurde die Aufgabe gestellt, mit Hilfe des Sieb des Erathostenes und einem boolschen Array alle Primzahlen von 2-1000 auszugeben. Allerdings scheine ich irgendwo Fehler zu haben :confused: Ich wäre sehr erfreut, wenn mir diese jemand aufzeigen bzw. erklären könnte. :) mfg #include #include <conio.h> using namespace std; const int MAX=1001;

int main()
{cout << "Sieb des Erathostenes\n\n"; 

int z,i;
bool natzahl[MAX]={0}; 


  for (i=2;i<MAX;i++) natzahl[i]=true;  



  for (z=2;z<MAX;z++)                      
  {
   for (i=z*2;i<MAX;i+=z)                                             
   {
   natzahl [i]=false; 
   }  
  }


  for (i=2;i<MAX;i++)                  
  {
    if ( natzahl[i-2] != false)
    {
        cout << " " << natzahl[i-2] ;

    }
  }
cout << "\n";


getch();
return 0;   
}
...zur Frage

C# workshop Rennbahn Simulator?

Also zu meinem Projekt: Ich bin gerade dabei einen Rennbahn Simulator zu programmieren. (Bin Anfänger) Ich habe 1 PictureBox für die Rennbahn und 4 weitere für die Windhunde. Der Code für die Klasse Windhund unten ist vorgegeben bis zum public bool Laufen(). Also Point p = Bild.Location; p.X += distanz; Bild.Location = p; return distanz;

und int distanz;

habe ich selbst geschrieben. Laufen() soll folgendes tun: Rückt zufällig 1, 2, 3 oder 4 Kästchen vor und aktualisiert die Position des Bilds im Formular. Liefert true, wenn das Rennen gewonnen ist.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace WindowsFormsApplication1
{
    public class Windhund
    {
        public int Startposition;
        public int RennBahnLänge;
        public int Ort;
        public PictureBox Bild = null;
        public Random Zufallszahl;
        int distanz;

        public bool Laufen()
        {
            Point p = Bild.Location;
            p.X += distanz;
            Bild.Location = p;
            return distanz;

        }

das return distanz; funktioniert natürlich nicht. aber ohne geht es ja auch nicht da ich einen Rückgabewert brauche. Was könnte ich machen um es zum laufen zu bringen

...zur Frage

"Non-static method getJackpot() cannot be referenced from a static context" Was ist hier der Fehler (Java)?

Hi Leute!

Ich bin gerade dabei, ein Spiel mit BlueJ zu programmieren ("Verflixte 7"). Dabei ist aber der in der Frage stehende Fehler aufgetreten.


Hier ist die dazugehörige Methode "geldNehmen" aus der Klasse "Spieler" :

 public void geldNehmen()
    {
        kapital=kapital+pott.getJackpot();
        pott.auszahlen();
        text="Du hast "+Pott.getJackpot()+"€ gewonnen!";
        System.out.print(text);
    }

Und die Methode "getJackpot" aus der Klasse "Pott":

public int getJackpot()
    {
        return jackpot;
    }

Ich muss noch sagen, dass ich ein sog. Neuling in Java bin. Könnte mir deshalb bitte jemand erklären, welches Problem hier vorliegt bzw. wie ich es Lösen kann?

Wäre froh über schnelle und hilfreiche Antworten! :)

LG, Oldcoockie!

...zur Frage

C - Switch Case - Anagramm?

Hallo,

ich wollte ein Anagramm in C programmieren, nur mit Arrays und den Bibliotheken stdio.h und string.h. Und ich verstehe nicht wo mein Fehler liegt bzw. warum die switch case Anweisung nicht richtig funktioniert. Hier der Code(es wurde im Nachhinhein viel herumgespielt, um den Fehler ausfindig zu machen und zu beheben, dazu musste ich ihn kürzen für die Frage - deswegen so chaotisch):

for(int k = 0 ; k < 31; k++){  //k ist länge des Arrays
        for(int i=0 ; i = '\0' ; i++){
         switch (s1[i]) {              //s1 ist das erste Wort
                case 'a': a1++; break;
                ....
                case 'z': z1++; break;
   }
        for(int i=0 ; i = '\0' ; i++){
         switch (s2[i]) {              //s2 ist das zweite eingegebene Wort
                case 'a': a2++; break;
                ....
                case 'z': z2++; break;
   }

if(a1==a2)&&...(z1==z2){
    printf("%s und %s sind Anagramme!\n", s1, s2);
     }else{
         printf("%s und %s sind keine Anagramme!\n", s1, s2);
         }
return 0;  
}

Funktionsweise: Es werden zwei char Arrays durch Eingabe gespeichert. Dann gehe man in einer Schleife, alle einzelnen Buchstaben eines Wortes durch. Bei jedem Buchstaben wird sein dementsprechender Zähler um 1 erhöht. Dann das selbe für Wort 2. Am Ende schaut man ob die Buchstaben für beiden gleich oft vorkommen, wenn ja dann ist es ein Anagramm, wenn nicht dann ist es kein Anagramm.

Lasse ich mir nach den Switch Anweisungen ausgeben, wie sich die Zähler-Variablen geändert haben, kommt immer die 0. Obwohl eigentlich was hätte gezählt werden müssen. Bin auch noch Anfänger, vielleicht habe ich die switch Anweisungen noch nicht komplett verstanden.

Aber ich habe auch keinen logischen Denkfehler, oder?

Und ich weiß, nicht die eleganteste Lösung und geht wahrscheinlich auch mit meiner Beschränkung noch effizienter, aber ich bin noch Anfänger.

Also ich wäre sehr dankbar über einen Lösungsansatz bzw einer Erklärung warum dies so nicht funktionieren kann.

PS.: Bei der ersten Schleife lautet der Syntax folgendermaßen, da er nicht richtig wiedergegeben wird:

(int k = 0; k <= 31; k++){

mfg werdas34

...zur Frage

Was möchtest Du wissen?