Java 如何使用Scanner获取一个整数中的存储输入

Java 如何使用Scanner获取一个整数中的存储输入,java,Java,我如何使问题的数量与用户输入的作业数量相同。例如,假设你做过5份工作,我希望程序要求用户提问, 你第一份工作的薪水 工作2 工作3 工作4 工作5,等等。我现在的代码是 import java.util.Scanner; public class Personal_Info { public static void main(String[] args) { Scanner Scanner = new Scanner(System.in); int Salary1;

我如何使问题的数量与用户输入的作业数量相同。例如,假设你做过5份工作,我希望程序要求用户提问, 你第一份工作的薪水 工作2 工作3 工作4 工作5,等等。我现在的代码是

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


     Scanner Scanner = new Scanner(System.in);

    int Salary1;
    int Salary2;
    int Salary3;
    int TotalJobs;
    int Average;
    String Name;
    int Largest;
    int Smallest;
    int Sum;


     System.out.print("What is your first name?: ");
    Name = Scanner.nextLine();

    System.out.print("How many jobs have you had?: ");
    TotalJobs = Scanner.nextInt();

    System.out.print("Enter income from job #1: ");
    Salary1 = Scanner.nextInt();

    System.out.print("Enter income from job #3: ");
    Salary2 = Scanner.nextInt();

    System.out.print("Enter income from job #3: ");
    Salary3 = Scanner.nextInt();
    Sum = Salary1 + Salary2 + Salary3;
    Average = Sum / TotalJobs;

     Largest = Salary1;
    Smallest = Salary1;

    if(Salary2 > Largest)
        Largest = Salary2;

    if(Salary3 > Largest)
        Largest = Salary3;

    if(Salary2 < Smallest)
        Smallest = Salary2;

    if (Salary3 < Smallest)
        Smallest = Salary3;

    System.out.println("Hello " + Name + "You've had " + TotalJobs + " jobs. " + "The highest paying job paid is " + Largest + ". The lowest paying job paid is "+ Smallest + ". The average is " + Average + ".");
import java.util.Scanner;
公共类个人信息{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
国际薪金1;
国际薪金2;
国际薪金3;
综合就业;
整数平均;
字符串名;
int最大;
int最小;
整数和;
System.out.print(“你的名字是什么?:”);
Name=Scanner.nextLine();
System.out.print(“您有多少份工作?:”;
TotalJobs=Scanner.nextInt();
系统输出打印(“输入工作收入#1:”);
Salary1=Scanner.nextInt();
系统输出打印(“输入工作收入#3:);
Salary2=Scanner.nextInt();
系统输出打印(“输入工作收入#3:);
Salary3=Scanner.nextInt();
总和=薪水1+薪水2+薪水3;
平均值=总工作数/总工作数;
最大=薪水1;
最小的=薪水1;
如果(薪水2>最大)
最大=薪水2;
如果(薪水3>最大)
最大=薪水3;
如果(工资2<最小值)
最小的=薪水2;
如果(薪水3<最小值)
最小的=薪水3;
System.out.println(“你好”+Name+“你有”+TotalJobs+“工作。”+“工资最高的工作是”+Maximum+”。工资最低的工作是“+Minimest+”。平均值是“+average+”);
但它不会工作,因为它只会询问用户三次,作业1、2和3

如果我尝试

for (int x = 0; x<TotalJobs; x++){ 
 System.out.print("How many jobs have you had?: "); 
 number = Scanner.nextInt();
for(int x=0;x使用数组

也只能大写类,不能大写变量

System.out.print("How many jobs have you had?: ");
int totalJobs = scanner.nextInt();
int[] salaries = new int[totalJobs];

// Loop here 
// System.out.print("Enter income from job #"+x);
// salaries[x] = scanner.nextInt();
使用此列表,您可以直接获得长度,并对总和、最小值、最大值使用单独的循环


通过求和和和长度,找到一个平均值

使用整数数组列表来保持工资并循环输入

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    ArrayList<Integer> sallaries = new ArrayList<>();
    int TotalJobs;
    double average;
    String name;
    int largest;
    int smallest;

    System.out.print("What is your first name?: ");
    name = input.nextLine();


    System.out.print("How many jobs have you had?: ");
    TotalJobs = input.nextInt();

    for (int i= 0; i<TotalJobs ; i++){
        System.out.print("Enter income from job #"+(i+1)+" : ");
        sallaries.add(input.nextInt());
    }

    average = sallaries.stream().mapToInt(Integer::intValue).average().orElse(-1);

    largest = Collections.max(sallaries);
    smallest = Collections.min(sallaries);


    System.out.println("Hello " + name + "You've had " + TotalJobs + " jobs. " + "The highest paying job paid is " + largest + ". The lowest paying job paid is "+ smallest + ". The average is " + average + ".");
} 
publicstaticvoidmain(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
ArrayList sallaries=新的ArrayList();
综合就业;
双倍平均;
字符串名;
int最大;
int最小;
System.out.print(“你的名字是什么?:”);
name=input.nextLine();
System.out.print(“您有多少份工作?:”;
TotalJobs=input.nextInt();

对于(int i=0;我希望这将对您有所帮助

    class SalaryCalculate{
    public static void main(String args[]){
    int totalJobs,jobcounter,maxSalary,minSalary,averageSalary=0;;
    int[] jobsincome;
    String name;
    Scanner sc= new Scanner(System.in);
    System.out.println("Enter your name");
    name=sc.nextLine();
    System.out.println("How many jobs you had");
    totalJobs= sc.nextInt();
    jobsincome= new int[totalJobs];
    for(int i=0;i<totalJobs;i++){
        jobcounter=i+1;
        System.out.println("Enter the income for your job "+jobcounter);
        jobsincome[i]=sc.nextInt();
        averageSalary=averageSalary+jobsincome[i];
    }
    jobsincome=average(jobsincome);
    maxSalary=jobsincome[totalJobs-1];
    minSalary=jobsincome[0];
    averageSalary=averageSalary/totalJobs;
    System.out.println("Hi "+name+" your min salary is "+minSalary+" max salary is "+maxSalary+" average salary is "+averageSalary);
    }
    public static int[] average(int jobsincome[]){
        int length=jobsincome.length;
        for(int i=0;i<length;i++){
            for(int j=i+1;j<length;j++){
                if(jobsincome[i]>jobsincome[j]){
                    int temp=jobsincome[j];
                    jobsincome[j]=jobsincome[i];
                    jobsincome[i]=temp;
                }
            }
        }
        return jobsincome;
    }
    }
class工资计算{
公共静态void main(字符串参数[]){
int totalJobs,jobcounter,maxSalary,minSalary,averageSalary=0;;
int[]工作收入;
字符串名;
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入您的姓名”);
name=sc.nextLine();
System.out.println(“你有多少份工作”);
totalJobs=sc.nextInt();
jobsincome=新整数[totalJobs];

对于(int i=0;i学会使用数组您的变量名违反惯例。只需使用“sc”或“scanner”。这是否有必要?@cricket\u 007:yes.average()只能应用于具有IntStream类型的对象(请参阅Java IntStream)感谢您的回复,请您解释代码的第二部分。
publicstaticint[]average(int-jobsincome[]){int-length=jobsincome.length;for(int i=0;iHi sayajin很高兴知道这对您很有帮助第二部分只需先执行排序以获得最小和最大薪资它将比较完整数组的值,然后按升序执行排序,因此第一个索引处的值将是最小值,最后一个索引处的值将是最大值。