Servus allerseits, ich hock da jetzt schon ein Weilchen dran und irgendwie erschließt sich mir nicht wo mein Fehler liegt.
Wir sollten ein Programm schreiben, daß die Abkühlung eines 100x100 großen Metallblocks, bestehend aus einzelnen Klötzchen, simuliert und dabei mit 2dim Arrays, if-else und for-schleifen arbeiten.
Nun ist mir aber anscheinend irgendwo ein Logik, oder Formfehler unterlaufen den ich ums Verrecken (entschuldigt meine Ausdrucksweise) nicht finde.
Ich bekomme einen Unreachable Statementerror direkt nach der großen For Schleife (var i), sprich über die kommt er nicht hinaus....
Aber wieso? Hilfe
Mein Code:
import java.util.*;
public class Waermeleitung
{
public static void main (String args [])
{
Locale.setDefault(Locale.US);
Scanner sc = new Scanner(System.in);
double[][] aktuelleTemperatur = new double[100][100];
double[][] neueTemperatur = new double[100][100];
int i = 0, j = 0;
for (i=0;i<=99;i++)
{
for (j=0;j<=99;j++)aktuelleTemperatur[i][j] = 100;
}
// Allen Elementen von aktuelleTemperatur 100 zugewiesen
double unten, oben, rechts, links, U;
int T, t=0;
unten = aktuelleTemperatur[i+1][j];
oben = aktuelleTemperatur[i-1][j];
links = aktuelleTemperatur[i][j-1];
rechts = aktuelleTemperatur[i][j+1];
U = 20;
System.out.println("How many Timesteps?");
T = sc.nextInt();
for (t=T;t>=1;t--)
{
double maxTemp;
for (i=0;1<=99;i++)
{
for (j=0;j<=99;j++)
{
if (j==0 & i==0)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j]
+ U + U + rechts + links));
}
else
if (j==0 & i==99)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j] +
U + U + rechts + oben));
}
else
if (j==99 & i==0)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j] +
U + U + links + unten));
}
else
if (j==99 & i==99)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j] +
U + U + links + oben));
}
else
if (j==99)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j] +
U + links + oben + unten));
}
else
if (i==99)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j] +
U + oben + links + rechts));
}
else
if (j==0)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j] +
U + oben + rechts + unten));
}
else
if (i==0)
{
neueTemperatur[i][j]=((1.0/5.0)*(aktuelleTemperatur[i][j]
+ U + unten + rechts + links));
}
else
neueTemperatur[i][j] = ((1.0/5.0)*(aktuelleTemperatur[i][j] +
unten + rechts + links + oben));
} // Close For2
} // Close For1
System.out.println("UNREACHABLE STATEMENT? WTF!?!");
for (i=0;i<=99;i++)
{
for (j=0;j==99;j++)
{
aktuelleTemperatur[i][j]=neueTemperatur[i][j];
}
}
for (i=0;i==99;i++)
{
for (j=0;j==99;j++)
{
if (aktuelleTemperatur[i][j]>aktuelleTemperatur[i][j+1])
maxTemp = aktuelleTemperatur[i][j+1];
}
}
} // Close T For
} // Close Main
} // Close Class
Alles anzeigen
Fmg
Grammo