人の名前と年齢を読み取るプログラムを作成しています。「zzz」と入力すると、18 歳以上のすべての人の名前と年齢が出力されます。また、18 歳以上の人の割合を計算したいと思います。しかし、ここに問題があります:私が以下に投稿しているコードは、最初の名前のみを出力します(例:「リカルド・アルメイダ」と年齢「19」。出力:「リカルド:19」ですが、「リカルド・アルメイダ:19」が必要です)。パーセンテージの計算にもエラーがありますが、何が間違っているのかわかりません. 常に 0 を返します. (完了!)これを読んで助けようとしている人に感謝します.
PS: 配列は使いたくない! 私はすでにそれらの使い方を学びましたが、それらを使わずにこれを解決する方法を知りたいです:)
package javaapplication38;
import java.util.Scanner;
public class JavaApplication38 {
private static final Scanner in=new Scanner(System.in);
private static String metodo1(String name, int age) {
String frase="";
if (age==18 | age>18) {
frase=String.format("%s : %d %n",name,age);
}
return frase;
}
public static void main(String[] args) {
int age, counter1=0, counter2=0;
String name, acumtxt="", aux;
do {
System.out.print("Name: ");
name=in.next(); in.nextLine();
if (!"ZZZ".equalsIgnoreCase(name)) {
counter1++;
do {
System.out.print("Age: ");
age=in.nextInt();
} while (age<=0);
if (age==18 | age>18) {
counter2++;
}
aux=metodo1(name,age);
acumtxt+=aux;
}
} while(!"ZZZ".equalsIgnoreCase(name));
System.out.print(acumtxt);
if (counter1>0) {
System.out.println("The percentage of people who's 18 or older is "+ (counter2/counter1) +"%.");
}
}
}