我正在尝试建立一个系统,其中有人输入0到100之间的数字,然后程序会将数字分配到设定的边界,基本上是一个等级存储系统。 我会告诉你我的代码,然后详细说明。
public static void main(String[] args) {
//Boundary0/30/40/70 indicates which band the counter is for. e.g. 0-29, 30-39 etc
int Boundary0 = 0;
int Boundary30 = 0;
int Boundary40 = 0;
int Boundary70 = 0;
int Grade;
int count;
count = 0;
Scanner in = new Scanner(System.in);
//Read in first number
System.out.print("Enter an Integer");
Grade = in.nextInt();
while (Grade < 100){
//To count number of students
count++;
//To allocate each grade to corresponding tier
if(Grade >= 0 && Grade <= 29){
Boundary0++;
}
if(Grade >= 30 && Grade <= 39){
Boundary30++;
}
if(Grade >= 40 && Grade <= 69){
Boundary40++;
}
if(Grade >= 70 && Grade <= 100){
Boundary70++;
}
Grade = in.nextInt();
}
//To print each boundary seperately with the number of marks in each tier and overall total
System.out.println("0-29:" + " " + Boundary0 );
System.out.println("30-39:" + " " + Boundary30);
System.out.println("40-69:" + " "+ Boundary40);
System.out.println("70-100:" + " " +Boundary70);
System.out.println("Amount of Students: " + count);
}
}
当用户输入一个数字时,程序会将1添加到相应的边界变量
然后当用户输入大于100的数字时,程序停止并打印
层和每层之后,告诉用户每层中有多少值。
那么我正在尝试做的是,在代码的末尾,sout命令所在的位置,
而不是字面上说每个部分有多少数字,我想代表
带* s的值,例如
0-29: *****
30-39: ****
40-69: ********
70-100: *****
对不起,如果我不是很清楚,我认为这可能只是对自己缺乏了解......
由于
答案 0 :(得分:4)
创建一个可重复使用的方法,为您打印*
-
public static void printStars(int n){
for(int i = 0 ; i < n ; i++)
System.out.print("*");
}
并像这样称呼它 -
System.out.println("0-29:" + " " + printStars(Boundary0));
System.out.println("30-39:" + " " + printStars(Boundary30));
System.out.println("40-69:" + " "+ printStars(Boundary40));
System.out.println("70-100:" + " " +printStars(Boundary70));
答案 1 :(得分:0)
只需添加额外的for-cycles:
System.out.print("0-29: ");
for(int i = 0; i < Boundary0; i++){
System.out.print("*");
}
System.out.println("");
答案 2 :(得分:0)
我认为你已经用你的代码实现了你想要的东西。 你只需打印那些:
在代码的最后,添加以下内容:
System.out.print("0-29: ");
for(int i=0;i<Boundary0;i++)
{
System.out.print("*");
}
System.out.println("");
System.out.print("30-39: ");
for(int i=0;i<Boundary30;i++)
{
System.out.print("*");
}
System.out.println("");
System.out.print("40-69: ");
for(int i=0;i<Boundary40;i++)
{
System.out.print("*");
}
System.out.println("");
System.out.print("70-100: ");
for(int i=0;i<Boundary70;i++)
{
System.out.print("*");
}
System.out.println("");
这肯定会解决目的,并与您编写的代码保持同步。
但我的个人建议是使用HashMap<String,Integer>;
来实现它。
希望这有帮助
EDIT !!!
这似乎很罗嗦。在Mohd的答案中尝试使用可重复使用的功能打印'*'。阿迪尔。