# Größte u. kleinste Zahl von byte, short, int berechnen



## test123 (29. Jan 2005)

Hallo,
ich muss für die Schule ein kleines Java-Programm programmieren und komme einfach nicht mehr weiter.
Die Aufgabe lautet wie folgt:
_"Ermittle mit einem Java-Programm  die kleinste und größte Zahl, welche man mit folgenden Datentypen abspeichern kann: byte, short, int"_

Mit int habe ich das auch mit nachstehendem Programm hinbekommen, ändere ich jedoch den Datentyp int in short oder byte um, lässt sich das Programm nicht mehr  compilieren  .

```
public class Rechnen6
{
	public static void main (String[] arg)
	{
		int zahl = 1;				//Testschritte
		int kleinste = zahl + 1;	//Suchanfangszahl
	
		while (kleinste > zahl) 
		{
			kleinste = kleinste + zahl;
		} 
		System.out.println("kleinste:" + kleinste);
	}
}
```

Es wäre nett, wenn mir jemand helfen könnte.


----------



## kopfsalat (29. Jan 2005)

Java ist sehr streng typisiert, d.h. wenn Du einem short-Wert, z.B. per 

```
short kleinste = zahl + 1
```
einen neuen Wert zuweisen willst, sieht Java, dass die '1' ein int-Wert ist, und schmeißt eine Fehler-/Warnmeldung.
(possible loss of precision - also : "es ist wahrscheinlich, dass hier an die verschiedenen Wertebereiche der Datentypen nicht gedacht wurde")
In einem solchen Fall muss Du das Ergebnis 'casten', also Java explizit sagen, dass das von Dir so gewünscht ist.
Das geht z.B. per:

```
short kleinste = (short) (zahl + 1)
```
Ebenso bei kleinste = kleinste + zahl;
bzw. für byte.

Kleiner Sch(m)erz am Rande:
Du machst das sicher genau so, wie der Lehrer sich das vorgestellt hat, aber eine Alternative, die MIN und MAX-Werte aller Datentypen zu erhalten ist:

```
public class Rechnen6b
{
   public static void main (String[] arg)
   {
      System.out.println(Integer.MAX_VALUE);
      System.out.println(Integer.MIN_VALUE);
      System.out.println(Short.MAX_VALUE);
      System.out.println(Short.MIN_VALUE);
      System.out.println(Byte.MAX_VALUE);
      System.out.println(Byte.MIN_VALUE);
   }
}
```

(geht auch mit Long, Double, Float, also Datentypen, wo das Hochzählen Ewigkeiten dauert)
 :wink:


----------



## test123 (29. Jan 2005)

Vielen dank, da hätte ich noch lange nach Fehlern suchen können !


----------

