Donald__Duck Skrevet 12. juli 2010 Del Skrevet 12. juli 2010 Jeg bruker en nextLine() metode i en loop, men metoden fungerer kun første gang loopen kjører. Neste gang loopen kjører skjer det ikke noe når jeg skriver tekst inn i konsollvinduet og loopen avsluttes derfor når jeg trykker enter. Noen som vet hva som er galt? for(int index=0;index<ord.length;index++) { string=scan.nextLine(); if(!string.equals("")) { ord[index]=new PP11_12_Ord(string); antall++; } else index=ord.length; } Lenke til kommentar
srbz Skrevet 13. juli 2010 Del Skrevet 13. juli 2010 Hmmm, kan det være at kriteriet for løkken overskrides etter første gjennomkjøring? (Altså at !string.equals("") er false første gang løkken kjøres) Lenke til kommentar
Donald__Duck Skrevet 13. juli 2010 Forfatter Del Skrevet 13. juli 2010 Hmmm, kan det være at kriteriet for løkken overskrides etter første gjennomkjøring? (Altså at !string.equals("") er false første gang løkken kjøres) Nei, det er ikke det som er feilen. Jeg har prøvd flere forskjellige måter og har ennå ikke fått det til å fungere. Det virker som det ofte er noe tull med Scanner-klassen, syns jeg. Lenke til kommentar
dejanV Skrevet 14. juli 2010 Del Skrevet 14. juli 2010 Grunnen til at løkka di feiler er pga ELSE-påstanden din. Når den registrerer at du ikke skriver noe inn, setter den index-variabelen lik lengden på arrayet du itererer. Du har i tillegg satt i FOR-påstanden at løkka bare skal iterere så lenge index-variabelen er mindre enn lendgen på arrayet. Det som skjer er at FOR-løkka di avsluttes fordi index er høyere enn den øvre grensen, som du satte for selve løkka. Lenke til kommentar
x871kx6167ss7 Skrevet 14. juli 2010 Del Skrevet 14. juli 2010 Hva er problemet? Hva er det du prøver på? Hva forventet du at skulle skje? Kan du legge til kode sånn at det blir kjørbart, og vise et kjøreeksempel med hva som blir feil? "select" isn't broken. Lenke til kommentar
Donald__Duck Skrevet 15. juli 2010 Forfatter Del Skrevet 15. juli 2010 Jeg er klar over at løkka avsluttes når jeg ikke skriver noe inn, det er også intensjonen. Problemet er at det ikke er mulig å skrive noe inn når løkka kjører for andre gang, selv når jeg skrev noe inn ved første gjennomkjøring. Løkka avsluttes når jeg trykker enter ved andre gjennomkjøring fordi det ikke skjer noe når jeg trykker på bokstavene på tastaturet. Lenke til kommentar
Donald__Duck Skrevet 15. juli 2010 Forfatter Del Skrevet 15. juli 2010 Det samme problemet oppstår for eksempel her: import java.util.Scanner; public class test { public static void main(String[]args) { Scanner scan=new Scanner(System.in); String a=scan.nextLine(); String b=scan.nextLine(); } } Når programmet kjører går det an å skrive inn noe for a, men ikke for b Lenke til kommentar
x871kx6167ss7 Skrevet 15. juli 2010 Del Skrevet 15. juli 2010 [peterbb@lambda ~]$ cat Test.java import java.util.Scanner; public class Test { public static void main(String[]args) { Scanner scan=new Scanner(System.in); String a=scan.nextLine(); String b=scan.nextLine(); System.out.printf("a=\"%s\" og b=\"%s\"\n", a, b); } } [peterbb@lambda ~]$ java Test string a string b a="string a" og b="string b" [peterbb@lambda ~]$ Er ikke noe IDE eller noe som ødelegger? Hvordan kjører du programmet? Lenke til kommentar
Donald__Duck Skrevet 15. juli 2010 Forfatter Del Skrevet 15. juli 2010 Jeg fant en metode etter at jeg skrev mitt forrige innlegg: import java.util.Scanner; public class test { public static void main(String[]args) { Scanner scan=new Scanner(System.in); String a=scan.nextLine(); System.out.println(); String b=scan.nextLine(); } } La bare til System.out.println() mellom String a og String b. Det fungerer også i koden jeg skrev i mitt første innlegg. Jeg bruker IntelliJ IDEA 9, kanskje det er det som skaper problemer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå