Villkorssatser
När jag väljer alt 2 så vill jag att man ska kunna skriva in både kön och inkomst. Men när jag kör programmet så hoppar den över "Skriva in kön: " och direkt till "Skriv in inkomst: ". Jag har gjort samma sak i en uppgift innan utan switch-case och då funkade det. Vad är felet?
Det har nog med att göra att när du skriver in 2 i alternativ så matar du in "2\n" till scannern, dvs du får med ett radbyte efter tvåan. När du bara läser input.nextInt() så kommer scannern bara läsa 2:an och "\n" ligger kvar och väntar. När du sedan når input.nextLine() så kommer scannern se att du har "\n" liggandes där och då kommer den helt enkelt returnera "" och gå vidare.
Så testa lägg till input.nextLine() efter denna rad
int val = input.nextInt();
så att det står
int val = input.nextInt();
input.nextLine();
och se om det blir bättre.
Stokastisk skrev :Det har nog med att göra att när du skriver in 2 i alternativ så matar du in "2\n" till scannern, dvs du får med ett radbyte efter tvåan. När du bara läser input.nextInt() så kommer scannern bara läsa 2:an och "\n" ligger kvar och väntar. När du sedan når input.nextLine() så kommer scannern se att du har "\n" liggandes där och då kommer den helt enkelt returnera "" och gå vidare.
Så testa lägg till input.nextLine() efter denna rad
int val = input.nextInt();
så att det står
int val = input.nextInt();
input.nextLine();
och se om det blir bättre.
Okej tack så mycket det funkade :). Men vad menas med "2\n" eller "\n"? Min bok har inte gått igenom det än.
När man skriver strängar så finns det vissa specialtecken. Ett specialtecken är \n, detta är radbyte. Så exempelvis så kan du testa skriva ut "hejsan\nsvejsan", du bör få utskriften
hejsan
svejsan
Det finns flera sådana tecken som du kan se här https://docs.oracle.com/javase/tutorial/java/data/characters.html
Stokastisk skrev :När man skriver strängar så finns det vissa specialtecken. Ett specialtecken är \n, detta är radbyte. Så exempelvis så kan du testa skriva ut "hejsan\nsvejsan", du bör få utskriften
hejsan
svejsan
Det finns flera sådana tecken som du kan se här https://docs.oracle.com/javase/tutorial/java/data/characters.html
Aha det hjälper en hel del. Då slipper man skriva ut System.out.print flera gånger om man vill ha radbyte för varje text. Vilket jag har suttit och gjort hela tiden haha.