Datentypen Fahrenheit - Celsius Umrechnen 2in1 Variable?

GreenTeaYT

Mitglied
Hey Leute, bin neu hier vielleicht könnt ihr mir weiterhelfen.

package Project_ub03a;
import java.text.DecimalFormat;
/*
* @author Tolga Kara
* Email: tolgakara2.0@gmail.com
* @version eclipse Mars 2, JavaSE-1.8
* Beschreibung Erstellen von Fahrenheit/Celsius Umrechnung
* @since 26.04.2016
* letzte �nderung am 05.05.2016
*/
public class ub03a
{//start class

public static void main(String[] args)
{//start main
//Attribute (Variable die Deklariert und Initialisiert werden)


int fahrenheit;
float celsius = ( 5 / 9) * ( fahrenheit -32 );
int minimalwert= 0;
int maximalwert= 100;
int schrittweite=10;

String pattern="###,##0.00";
DecimalFormat form = new DecimalFormat(pattern);

for (int fahrenheit==minimalwert>maximalwert; fahrenheit=+schrittweite😉{

System.out.println(celsius = ( 5 / 9) * ( fahrenheit -32 ));

}




}//end main

}//end class

Da steht das er keinen Bool in Int converten kann und andersrum auch nicht. Meine frage ist kann man einer Variablen <= 2 Variable initialisieren.
 
Code:
public static void main(){
int i;
int k;
for(i=0;i<100;i=i+10){
k=10*i+20;
System.out.println(k);
}
}

Ich habe hier mal einen Beispielcode erstellt, um die Schwierigkeit zu erklären. Bei der Initialisierung befiehlst du dem Compiler Speicherplatz für deine Variablen zu initialisieren. Du füllst diese reservierten Speicherplätze in der Regel erst später mit Daten. Und mit den in den Variablen gespeicherten Werten geht dann das Programm um. Eine Initialsierung mit einem Wert,, z.B" int i=5;" dient meines Wissens am besten als Definition konstanter Werte.
 
Schau dir nochmal die Syntax von "for(...) " an. Da war bei dir so ziemlich alles falsch und daher kommt der Fehler.

Code:
for ( ... hier drin war si ziemlich alles falsch ....){

System.out.println(celsius = ( 5 / 9) * ( fahrenheit -32 ));

}
 
Code:
public static void main(){
int i;
int k;
for(i=0;i<100;i=i+10){
k=10*i+20;
System.out.println(k);
}
}

Ich habe hier mal einen Beispielcode erstellt, um die Schwierigkeit zu erklären. Bei der Initialisierung befiehlst du dem Compiler Speicherplatz für deine Variablen zu initialisieren. Du füllst diese reservierten Speicherplätze in der Regel erst später mit Daten. Und mit den in den Variablen gespeicherten Werten geht dann das Programm um. Eine Initialsierung mit einem Wert,, z.B" int i=5;" dient meines Wissens am besten als Definition konstanter Werte.

Das Beispiel ginge aber auch deutlich besser...
i und k sollten möglichst kleinen Scope haben, in diesem Fall wäre das 'for(int i...)' und 'int k=10...'. Konstante Werte sollte man immer final deklarieren, und initialisieren sollte man für schönen Stil wenn möglich alle Variablen direkt. Ob man alle nötigen zu Anfang oder erst wenn sie benötigt deklariert, ist ne Stilentescheidung, solange der Scope gleich bleibt, ich bevorzuge aber letzteres.

Edit: Initialisieren bedeutet mit Werten füllen. Du meinst Deklarieren, und dabei initialisiert (zumindest bei lokalen) der Compiler eben nicht.
 
Ich hatte diese Zeile auch noch als fehlerhaft ausgemacht, und dachte, dass sich darauf die Überschrift bezieht:
Code:
float celsius = ( 5 / 9) * ( fahrenheit -32 );
 
Außerdem wird hier eine Integer division durchgeführt. D.h. 5/9 ist eben nicht gleich 0.5555, sondern 0, da Integer eben nur ganze Zahlen repräsentieren. Richtig wäre hier z.B. 5/9f, da dadurch eine Float division durchgeführt wird
 
Das Ergebnis einer Operation ist immer vom kleinsten, umschließenden Typen.
int / int = int
float / float = float
....
Wenn du nun eben zwei verschiedene Typen hast, ist das Ergebnis von dem "größeren" der beiden Typen.
int / float = float
float / int = float
...
 

Zurück
Oben