Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hallo freunde der nacht^^
wir müssen für info ne datei schreiben die von einer beliebigen Zahl,die man selbst eingeben kann,alle teiler ermittelt...
also das mit den teilern ermittelen habe ich schon geschafft*puhh*;-)jetzt hängt es nur noch an der eingabe...
ich weiß ich muss da irgendwie was mit buffered reader usw.krieg da aber immer nur fehler geschmissen...ich dachte ich poste hier mal meinen bisherigen code,vielleicht erbarmt sich ja einer und sagt mir wie ich das mit der eingabe mache...
thx schonma
greetz J.S
hier mein Code:
Code:
/**
*
* @author J.S
*/
public class teiler {
long zahl =1000;
public static void main(String args []) {
new teiler();
}
public teiler() {
System.out.println("Teiler der Zahl "+zahl);
for (long teiler =1; teiler<=zahl; teiler++) {
if ( ( zahl % teiler)==0)
System.out.print(" "+teiler);
}
System.out.println();
}
}
ja soweit war ich auch aber wo muss ich diesen input stream einbauen?könnte mir das mal jemand anhand meines codes oben zeigen?weil genau das bekomme ich nicht hin...thx
jo servus musste auch mal so ein prog schreiben,das hat auch problemlos geklappt!nur wie könnte man da jetzt ein loop einfügen,also das man immer wieder eine zahl eingeben kann,ohne neu compilen zu müssen!thx reflex
jo ok das while muss vor den bufferd reader das hab ich jetzt,thx!;-)
aber wenn ich jetzt ne falsche zahl eingebe und den fehler gemeldet bekomme kann ich nix mehr eingeben,muss ich da eine zweite while schleife einbauen?
überhaupt: Wir hattten mal gesagt, dass wir den lerneffekt so groß wie möglich halten wollen. mic_checker's erster beitrag entspricht dem nicht unbedingt...
@Campino: Guck dir den Source mal genauer an, dadrin steht eigentlich nur was bereits gepostet wurde, lediglich try... catch hinzugefügt. also nicht so dramatisch kontraproduktiv was lerneffekt betrifft
ich meine wenn ich zb 2.5 als zahl eingebe dann fliegt ja eine exception,fehler meldung erscheint.danach würd ich aber weiter gerne die möglichkeit haben wieder ein zahl eingeben zu können.muss ich das mit einer weitern while schleife machen?
du müsstest die System.exit(-1) rausholen aus den catch-Blöcken und könntest um try ne weitere Schleife schreiben, so dass du z.B. ne best. Anzahl an zahlen eingibst und von denen die Teiler bestimmst.
supi danke,klappt alles
eine frage nur noch^^
wenn ich jetzt eine zahl wie 2.8 eingebe sagt er erst GEBEN SIE EINE ZAHL EIN und dann erst DIE EINGABE WAR UNGÜLTIG...wie kann ich die reinfolge umdrehen?
import java.io.*;
public class teiler
{
public static void main(String args [])
{ while (true)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int zahl = 0;
{ while (true)
try
{
System.out.println("Bitte geben sie eine Zahl ein: ");
String input = br.readLine();
zahl = Integer.parseInt(input);
teiler(zahl);
}
catch(IOException ioe)
{
System.err.println("IOException");
}
catch(NumberFormatException nfe)
{
System.err.println("Das war keine gerade Zahl!");
}
}
}
}
public static void teiler(int zahl)
{
System.out.println("Teiler der Zahl "+zahl);
for (int teiler =1; teiler<=zahl; teiler++)
{
if ( ( zahl % teiler)==0)
System.out.print(" "+teiler);
}
System.out.println();
}
}
ps.wenn ich zb -4 eingebe zeigt er mir nur .4 als teiler an und bei 0 gar nichts(müsste ja eigentlich eins sein...)kann man das noch irgendwie realisieren oder ist das dann zu komplex?