3 svar
707 visningar
elg36 2 – Fd. Medlem
Postad: 25 nov 2021 15:38 Redigerad: 25 nov 2021 17:49

Beräkna genomsnittsålder

Frågan: Skriv ett program som läser in uppgifter om ett antal personer, och beräknar genomsnittsåldern för kvinnor respektive män i gruppen.

 

och det här är vad jag har skrivit:

 

import java.util.Scanner;
public class Person {
public static void main(String[] args) {

int male = 0;
int female = 0;
int sumAgeMale = 0;
int sumAgeFemale = 0;

Scanner in = new Scanner(System.in);
String input = "";


System.out.println("Press M for male and F for female. Press N if there are no more people ");
input = in.nextLine();

while (input.equals("M") || input.equals("F")) {

if (input.equals("M")) {
System.out.println("Please enter the mans age:");
sumAgeMale += in.nextInt();
male++;

} else if (input.equals("F")) {
System.out.println("Please enter the womans age:");
sumAgeFemale += in.nextInt();
female++;
} else {
System.out.println("The average age of the men is: " + sumAgeMale / male);
System.out.println("The average age of the women is: " + sumAgeFemale / female);

}
}
}
}

 

 

problemet är att jag inte får while loopen att fortsätta. finns det någon som vet varför?


Rubrik ändrad från "Hej! Jag har en fråga i min läxa för programmering 1 som jag skulle behöva hjälp med." till nuvarande. En beskrivande rubrik underlättar för de som svarar, och hjälper till att skilja trådar från varandra. Läs gärna mer om rubriksättning här. /Smutstvätt, moderator 

Laguna 28468
Postad: 25 nov 2021 15:50

Du får se till att 'input' får nya värden inne i loopen, annars är den alltid samma sak i while-testet.

elg36 2 – Fd. Medlem
Postad: 26 nov 2021 14:45

Ok! Ska det få ett tomt värde då? eller hur skulle det funka?

AndersW 1622
Postad: 26 nov 2021 15:26

Nej men din fråga om input ligger utanför loopen så du kommer aldrig att fråga om ett nytt värde på input.

Svara Avbryt
Close