gpt4 book ai didi

java - 为什么这是非法的表达开始?

转载 作者:行者123 更新时间:2023-12-03 19:10:19 26 4
gpt4 key购买 nike

我在java中创建了这个方法,如果字符串包含字母“i”,则替换它的元音:

public static boolean esVocal(Character c) {
boolean res = false;
if (c == 'a' | c == 'o' | c == 'e' | c == 'u') {
res = true;
}
}

无论如何,给我的错误是:

illegal start of expression

最后,它说该方法需要返回

错误可能出在语法中吗?

最佳答案

说明

你的方法签名

public static boolean esVocal(Character c)

声明返回类型 boolean 值。这意味着您的方法应该返回boolean类型的内容


解决方案

如果您不想返回任何内容,则应将返回类型声明为 void:

public static void esVocal(Character c)

或者如果你想返回一些东西,你需要在你的方法中添加相应的语句:

public static boolean esVocal(Character c) {
boolean res = false;

if (c == 'a' | c == 'o' | c == 'e' | c == 'u') {
res = true;
}

// You probably wanted to return this
return res;
}

注释

请注意,您可以通过直接返回结果 boolean 来减少方法,例如:

public static boolean esVocal(Character c) {
return c == 'a' | c == 'o' | c == 'e' | c == 'u';
}

数字上的运算符|不是逻辑或。它是一个按位包含或运算,它对值进行一些位操作,例如:

   0100 1110
or 1000 1011
---------
1100 1111

但是,在 boolean 表达式上,就像您的情况一样,它也表现为逻辑或(请参阅 JLS 15.22.2 )。

还有一个运算符||,它始终表现为逻辑或

请注意,即使在 boolean 值上使用时,两个运算符之间也存在差异。 | 运算符将始终计算整个表达式,即使结果值已经是明确的。如果结果已经很清楚,|| 将中止评估,如

true || someBoolean || someOtherBoolean

true 已经使整个结果 true 并且 || 因此不会计算表达式的其余部分,而 | 会的。

在您的情况下,您可能想使用 ||:

c == 'a' || c == 'o' || c == 'e' || c == 'u'

对于逻辑和&&&区别是一样的。

关于java - 为什么这是非法的表达开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47496104/

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