# java-aufgabe..



## god3000 (9. Mrz 2004)

hallo zusammen! 
hab eine aufgabe von meinem lehrer bekommen, und hab keine ahnung, wie ich sie lösen könnte! kann mir da mal jemand helfen bitte? 

Schreiben Sie eine Funktion die alle ungeraden Zahlen zwischen einschliesslich 1 und einer als Parameter übergebenen Obergrenze aufsummiert und zurückgibt. Überlegen Sie sich zuerst die verwendeten Datentypen (Rückgabewert, Parameter, Variable(n)) und schreiben Sie in einem Kommentar vor der Funktion, warum sie genau diese gewählt haben. Wird als Parameter Null oder eine negative Zahl übergeben, so wird immer 0 zurückgelifert. Achten Sie auch auf einen ordentlichen Programmierstil (Einrückungen, sprechende Namen, Kommentare). 

Beispiele: 
Aufruf mit dem Wert 1 als Parameter liefert 1 zurück (=1). 
Aufruf mit dem Wert 7 als Parameter liefert 16 zurück (= 1+3+5+7) 
Aufruf mit dem Wert 10 als Parameter liefert 25 zurück (=1+3+5+7+9) 
Aufruf mit dem Wert -13 als Parameter liefert 0 zurück (Fehlerrückgabe laut Angabe). 


ich wäre sehr sehr dankbar für eine lösung......


----------



## bygones (9. Mrz 2004)

hey - das ist doch was  :wink: 
Ich hoffe du verstehst die angezettelte Diskussion...

Als Wiedergutmachung hier eine Lösung:


```
public static void main( String[] args ){
    try {
	   int number = Integer.parseInt(args[0]);
		System.out.println("Result is: " + sumOddNumbers(number));
	 }
	 catch(NumberFormatException e) {
	   System.err.println("The argument has to be an integer !");
    }
   }

	public static int sumOddNumbers(int maxNumber) {
	  if(maxNumber < 1) {
	    return 0;
	  }
	  int sum = 0;

	  for(int i = 1; i <= maxNumber; sum += i, i+=2) {
	  }
	  return sum;
	}
```

Falls es Fragen gibt, fühl dich frei  :?:  :!:


----------



## god3000 (9. Mrz 2004)

ja versteh schon was ihr meint! war zuerst ein wenig sauer, aber jetzt weiß ich was ihr meint! tut mir leid, wollte keinen ärger machen! danke vielmals für das codestück!


----------



## bygones (9. Mrz 2004)

kann ich verstehen !

Hoffe nun man sieht dich hier öfters...

Verstehst du das Programm ?


----------



## god3000 (9. Mrz 2004)

die befehle try und catch sagen mir im moment nichts, hab ich noch nie gehört, das andere ist mir schon klar...


----------



## bygones (9. Mrz 2004)

try / catch werden zum Fehler abfangen verwendet.

Wie die Namen es sagen. Im try Block wird etwas versucht - in dem Fall wird versucht aus dem übergebenen Parameter (ein String) eine Zahl zu machen . Nun kann es ja sein, dass der User keine Zahl eingibt, sondern irgendwas. Dann kann Java dieses irgendwas nicht in eine Zahl umwandlen und wirft eine Exception (in diesem Falle eine NumberFormatException). Und die wird dann im catch Block abgefangen....


----------

