我用Java创建了一个字符数组,
char[] letterGrade = { 'A','B','C','D','F'};
我正在尝试引用这样的元素,
letterGrade[0]
我收到一个错误,指出不兼容的类型
必需的: 炭[]
发现:char
我已经在代码中的其他地方用双数组完成了它并且它工作正常。为什么它不适用于字符数组?
谢谢!
从您的评论中更新
public static void method()
{
double totalEarnedPoints = 1;
double totalPossiblePoints = 1;
double gradePer = 0.0;
gradePer = (totalEarnedPoints / totalPossiblePoints);
char[] letterGrade = { 'A', 'B', 'C', 'D','F'};
if (gradePer >= gradeScale[0])
{
letterGrade = char letterGrade(0);
}
else if (calcPercent >= gradeCutoffs[1] && calcPercent < gradeCutoffs[0])
{
letterGrade= char letterGrade(1);
}
}
答案 0 :(得分:1)
“我正在尝试用if语句实现它,
char[] letterGrade = { 'A', 'B', 'C', 'D','F'};
if (calcPercent >= gradeCutoffs[0]) {
letterGrade = letterGrade[0];
}
如果你这样做的话。
由于letterGrade属于char[]
类型,因此您无法仅使用char分配它。 L.H.S.
值必须是char。
答案 1 :(得分:0)
如果您的目标变量的类型为char,则发布的示例有效,因此我假设您在分配中做错了。也许您正在调用一个需要char[]
的函数,如果没有funct(letterGrade)
,则应使用[0]
。
如果您的问题仍然存在,则应发布更多代码。
<强>更新强>
我修复了你的代码以使其编译。当然我不知道应该是什么,所以我不得不做一些假设,但是你应该看看语法应该如何。
public static void method()
{
double totalEarnedPoints = 1;
double totalPossiblePoints = 1;
double gradeScale[] = {1, 2, 3};
double gradeCutoffs[] = {1, 2, 3};
double gradePer = 0.0;
char letter;
double calcPercent = 1;
gradePer = (totalEarnedPoints / totalPossiblePoints);
char[] letterGrade = { 'A', 'B', 'C', 'D','F'};
if (gradePer >= gradeScale[0])
{
letter = letterGrade[0];
}
else if (calcPercent >= gradeCutoffs[1] && calcPercent < gradeCutoffs[0])
{
letter = letterGrade[1];
}
else
letter = 'F';
System.out.println("Grade:"+letter);
}
答案 2 :(得分:0)
这适用于我: char [] letterGrade = {'A','B','C','D','F'}; 的System.out.println(letterGrade [0]); 它输出A
所以我怀疑这是你分配给它的。 也许你在某个地方: letterGrade = letterGrade [A]
答案 3 :(得分:0)
required: char[]
found: char
如果要在char []数据类型中指定char,则会发生此类错误。
前:
char[] ch = letterGrade[0];