Java 这个if语句有什么错?
守则:Java 这个if语句有什么错?,java,Java,守则: // message is a string , a1 is an integer array .. both well defined if(Integer.parseInt(Character.toString(message.charAt(i))) == (a1[i - 1] + a1[i])) { ... } 1过多的)位于charAt的末尾,这将关闭if条件。除了语法错误外: 太复杂了。使用局部变量计算中间结果 使用Character.getNumericVa
// message is a string , a1 is an integer array .. both well defined
if(Integer.parseInt(Character.toString(message.charAt(i))) == (a1[i - 1] + a1[i])) {
...
}
1过多的
)
位于charAt
的末尾,这将关闭if条件。除了语法错误外:
Character.getNumericValue(ch)
代替Integer.parseInt(Character.toString(ch))
什么是
i
?如果它是0
,a1[i-1]
将抛出异常。请在每行前面放置四个空格,或者选择它并按下编辑器中的“101010”按钮来格式化代码。C:\Users\Dhruv\Desktop\Topcoder>javac*.java BinaryCode.java:29:If(Integer.parseInt)表达式的非法开始(Character.toString(message.charAt(i))==(a2[i-1]+a2[i])^BinaryCode.java:29:';'如果(Integer.parseInt(Character.toString(message.charAt(i)))=(a2[i-1]+a2[i]),您至少可以发布消息和a1的定义吗?^
指向什么点?javac错误消息和注释不太合拍。@D.J.问题中的代码和注释中的代码是不同的。如果你没有提供真正的代码,你希望人们如何发现你的语法错误???真正的问题是if条件太复杂了。通过将这些部分提取到有意义的变量中,它将更易于阅读,并且可能不会成为问题。例如,“a1[i-1]+a1[i]”是什么意思?假设它是期望和,然后将其分配给变量int expectedSum。因此,最终,这个if条件可能看起来像“if(extractedNumber==expectedSum)”,这对眼睛更友好,更容易阅读。正如markali所指出的,代码可读性不强,不可读的代码可能会出现这种问题。不要试图编写这样的代码,因为假定将这些表达式中的一些赋值给变量会降低程序的速度。它不会发生。如果它是=a1.length,则提供的代码也会引发异常。@SM-这是真的,但循环通常是从0
到a.length-1
。