gpt4 book ai didi

java - 否则没有 if - android studio/java

转载 作者:行者123 更新时间:2023-12-01 11:05:49 25 4
gpt4 key购买 nike

我正在为计算器编写代码。我在代码中最后一个“else”处遇到错误“else without if”。如果您能帮我弄清楚它是什么,我将不胜感激:)

ArrayList<String> arrayList = new ArrayList<String>();
String string = "";
String string1 = "";

public void onClick1(View v) {

TextView textView2 = (TextView) findViewById(R.id.textView2);

Button button = (Button) v;

string = (String) button.getText().toString();

if (!string.contains("+") && !string.contains("-") && !string.contains("*") && !string.contains("/")) {

string1 = string1 + string;

if (arrayList.size() > 0) {
arrayList.remove((arrayList.size() - 1));
}

arrayList.add(string1);
} else {
arrayList.add(string);
arrayList.add(string);
string1 = "";
}

//textView2.setText(textView2.getText().toString()+string);

textView2.setText(arrayList.toString());
}

public void onClick(View v) {

TextView textView1 = (TextView) findViewById(R.id.textView);

int calc = 0;
int c = arrayList.size();

while (c != 1) {

if (c > 3) {

if (arrayList.get(3).contains("*") || arrayList.get(3).contains("/")) {

if (arrayList.get(3).contains("*")) {
calc = Integer.parseInt(arrayList.get(2)) * Integer.parseInt(arrayList.get(4));
}
if (arrayList.get(3).contains("/")) {
calc = Integer.parseInt(arrayList.get(2)) / Integer.parseInt(arrayList.get(4));
}

arrayList.remove(2);
arrayList.remove(2);
arrayList.remove(2);
arrayList.add(2, Integer.toString(calc));
c = arrayList.size();
} else {
if (arrayList.get(1).contains("+"))
calc = Integer.parseInt(arrayList.get(0)) + Integer.parseInt(arrayList.get(2));
}
if (arrayList.get(1).contains("-"))
calc = Integer.parseInt(arrayList.get(0)) - Integer.parseInt(arrayList.get(2));
}
if (arrayList.get(1).contains("*"))
calc = Integer.parseInt(arrayList.get(0)) * Integer.parseInt(arrayList.get(2));

{
if (arrayList.get(1).contains("/"))
calc = Integer.parseInt(arrayList.get(0)) / Integer.parseInt(arrayList.get(2));

arrayList.remove(0);
arrayList.remove(0);
arrayList.remove(0);
arrayList.add(0, Integer.toString(calc));
c = arrayList.size();

else {
if (arrayList.get(1).contains("+")) {
calc = Integer.parseInt(arrayList.get(0)) + Integer.parseInt(arrayList.get(2));
}
if (arrayList.get(1).contains("-")) {
calc = Integer.parseInt(arrayList.get(0)) + Integer.parseInt(arrayList.get(2));
}
if (arrayList.get(1).contains("*")) {
calc = Integer.parseInt(arrayList.get(0)) + Integer.parseInt(arrayList.get(2));
}
if (arrayList.get(1).contains("/")) {
calc = Integer.parseInt(arrayList.get(0)) + Integer.parseInt(arrayList.get(2));
}

arrayList.remove(0);
arrayList.remove(0);
arrayList.remove(0);
arrayList.remove(0);
arrayList.add(0, Integer.toString(calc));
c = arrayList.size();
}
}
textView1.setText(Integer.toString(calc));
}
}

public void clear(View v) {
TextView textView1 = (TextView) findViewById(R.id.textView);
TextView textView2 = (TextView) findViewById(R.id.textView2);

string1 = "";
string = "";
textView1.setText("0");
textView2.setText("");
arrayList.clear();
}

最佳答案

您可以检查onClick()方法的代码。你最好格式化你的代码。我添加了评论来指出问题。

...
if (arrayList.get(1).contains("*"))
calc = Integer.parseInt(arrayList.get(0)) * Integer.parseInt(arrayList.get(2));

{ // <----------------------------this is redundant
if (arrayList.get(1).contains("/"))
calc = Integer.parseInt(arrayList.get(0)) / Integer.parseInt(arrayList.get(2));

arrayList.remove(0); // this code is not in above if block.
arrayList.remove(0);
arrayList.remove(0);
arrayList.add(0, Integer.toString(calc));
c = arrayList.size();

else { // <----------------------------this else is without if
...

注意:我还没有检查你的逻辑。

<小时/>

引用:The if-then and if-then-else Statements ,它指出

The opening and closing braces are optional, provided that the "then" clause contains only one statement

关于java - 否则没有 if - android studio/java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com