如何从用户输入计算整数ArrayList的总和

问题描述 投票:1回答:3

为用户创建程序以输入他们在会话中执行的俯卧撑数量,在一个文本视图中显示该会话的数量,同时在第二个文本视图中显示所有上推会话的总和。

我尝试下面的代码似乎适用于很多人,但我收到错误“无法解析符号我”

我的代码或此方法有问题吗?有关在日期范围内查找arraylist项目总和的任何提示也将非常受欢迎

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final ArrayList<Integer> pushuplist = new ArrayList<>();

    EditText PushupEditText = findViewById(R.id.PushupEditText);
    Button AddButton = (Button) findViewById(R.id.Submit);
    AddButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText PushupEditText = findViewById(R.id.PushupEditText);
            TextView PushupTextView = findViewById(R.id.PushupTextView);
            TextView TotalPushupsText = findViewById(R.id.TotalPushupsText);

            int PushupNum = Integer.parseInt(PushupEditText.getText().toString());
            pushuplist.add(PushupNum);

            PushupTextView.setText(PushupNum+"");

            int sum = 0;
                for (int i = 0; i < pushuplist.size(); i++);
            {
                sum += pushuplist.get(i);
            }

        }
    });
java android arraylist sum integer
3个回答
0
投票

在for循环声明之后,下面的代码有一个额外的分号。删除分号应该可以解决问题。

int sum = 0;
for(int i = 0; i < pushuplist.size(); i++); // remove this semicolon
{
    sum += pushuplist.get(i);
}

如果您想知道为什么这不会触发编译器错误或警告,请继续阅读。

当你编写for循环时,如果没有添加大括号,则下一个可执行语句将在for循环的迭代中运行。

for(int i = 0; i < 10; i++) System.out.println(i);

for(int i = 0; i < 10; i++)
    System.out.println(i);

这些都是有效代码的实例。在这两种情况下,打印将被触发10次并打印出i的值。

在for循环声明之后有分号的情况下,例如你的:

for(int i = 0; i < pushuplist.size(); i++);

下一个可执行语句是分号;,因此没有任何内容贯穿所有for循环迭代。

希望这个解释应该对那里发生的事情有所了解。

祝你的应用好运!


0
投票

你有一点错误()使用此代码。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<Integer> pushuplist = new ArrayList<>();

EditText PushupEditText = findViewById(R.id.PushupEditText);
Button AddButton = (Button) findViewById(R.id.Submit);
AddButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        EditText PushupEditText = findViewById(R.id.PushupEditText);
        TextView PushupTextView = findViewById(R.id.PushupTextView);
        TextView TotalPushupsText = findViewById(R.id.TotalPushupsText);

        int PushupNum = Integer.parseInt(PushupEditText.getText().toString());
        pushuplist.add(PushupNum);

        PushupTextView.setText(PushupNum+"");

        int sum = 0;
        for (int i = 0; i < pushuplist.size(); i++)
        {
            sum += pushuplist.get(i);
        }

    }
});

0
投票

删除最后一个分号:

for (int i = 0; i < pushuplist.size(); i++);
© www.soinside.com 2019 - 2024. All rights reserved.