вот мой код до сих пор (он был обновлен):
import java.util.Scanner;
public class gpa {
public static void main(String[] args) {
double gpa=0;
double input = 0;
String grade= "";
int classes =0;
double fail =0;
do
{
System.out.print("Enter Grade (n to quit): ");
Scanner sc = new Scanner(System.in);
grade = sc.nextLine();
grade = grade.toLowerCase();
if (grade.equals("a"))
{
input = 4.0;
}
if (grade.equals("b"))
{
input = 3.0;
}
if (grade.equals("c"))
{
input = 2.0;
}
if (grade.equals("d"))
{
input = 1.0;
}
if (grade.equals("f"))
{
fail = 1;
}
gpa+=input;
classes++;
} while(grade!="n");
System.out.print("GPA: " + gpa + " ");
gpa/=classes;
if (gpa>=2 && classes >=4 && fail !=1)
{
System.out.print("Eligible");
}
else if(classes <4)
{
System.out.print("Ineligible. less than 4 classes");
}
else if (gpa < 2.0)
{
System.out.print("Ineligible. GPA is less than 2.0");
}
else if (gpa >=2.0 && fail == 1)
{
System.out.print("Ineligible. GPA is above 2.0, but has an F");
}
else if (gpa <2.0 && fail ==1)
{
System.out.print("Ineligible. GPA is below 2.0 and has F");
}
}
}
Вот что мне нужно для вывода:
- Имеющий право
- Не соответствует требованиям, посещает менее 4 занятий
- Не соответствует требованиям, средний балл ниже 2.0
- Не соответствует требованиям, средний балл выше 2,0, но имеет оценку F (примечание: средний балл >= 2,0)
- Не соответствует требованиям, средний балл ниже 2.0 и оценка F
Он продолжает запрашивать ввод. Как мне остановить это? Я попытался преобразовать оценку в символ, но это закончилось для меня ужасно. Я думаю, что это может быть ошибка компилятора или что-то в этом роде. Любая помощь будет оценена по достоинству. Хотя полезная помощь понизила бы мое кровяное давление.
else if (gpa <2.0 && fail ==1)линия никогда не будет достигнута из-за того, что выelse if (gpa < 2.0)над ней. - person animuson   schedule 01.11.2011