gpt4 book ai didi

java - 如何根据用户输入计算 ArrayList 的整数和

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:44 24 4
gpt4 key购买 nike

创建一个程序,让用户输入他们在一次训练中所做的俯卧撑次数,在一个 TextView 中显示该训练次数,同时在第二个 TextView 中显示所有俯卧撑训练的总和。

我尝试了下面的代码,它似乎对很多人都有效,但我收到错误“无法解析符号 i”

我的代码或这个方法有问题吗?任何有关查找日期范围内数组列表项总和的提示也将不胜感激

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);
}

}
});

最佳答案

下面的代码在 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 循环迭代中不会运行任何内容。

希望这个解释能够让我们了解那里发生的事情。

祝您的应用好运!

关于java - 如何根据用户输入计算 ArrayList 的整数和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55668998/

24 4 0