说明:
编写一个名为sumConsonants的方法,该方法将两个作为参数
大写字母。您的函数应返回的所有ascii值的总和
起始字符和结束字符之间的辅音。你的
main方法应将两个值传递给函数,并输出所有
辅音字符值,包括第一个和最后一个。

例如,如果输入为AE,则程序将在A和E之间添加所有辅音值,这些辅音值将为B(66),C(67),D(68),其总计为201。输入的是EA,那么它仍然会合起来。

我陷入了for循环方法。谢谢!

这是我到目前为止所拥有的...

public int sumConsonants(int a, int b) {

    int sum = 0;

    for (int i = 0; i <= b; i++) {
        if ( i == 'A' || i == 'E' || i == 'I' || i == 'O' || i == 'U' )
            ;
        else
            sum += i;
    }

    return sum;
}

public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);
    Assignment11 c = new Assignment11();
    int a,b;
    System.out.println("Enter two uppercase characters");
    String s = in.nextLine();
    String upper = s.toUpperCase();
    a = upper.charAt(0);
    b = upper.charAt(1);
    System.out.println("The sum of the consonants is " + c.sumConsonants(a,b));
}

最佳答案

您的循环超出了它引入的值数量。

for(int i = 0; i <= b; i++)


这应该绑定在ab之间。

for(int i = a; i <= b; i++)


为了确保获得最小值作为下限(假定为a),并获得最大值作为上限(假定为b),您需要采用这两个值的最小值和最大值,但我将其留给读者练习。

10-08 16:34