我正在制作一个读取一个人的姓名和年龄的程序,当输入“zzz”时,它会打印所有 18 岁或以上的人的姓名和年龄。另外,我想计算 18 岁或以上的人的百分比。但是,问题出在这里:我在下面发布的代码只打印名字(例如:“Ricardo Almeida”和年龄“19”。输出:“Ricardo:19”,但我想要“Ricardo Almeida: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) +"%.");
}
}
}