Java 如何在main方法中插入double?
我想写一个程序来计算我的数学和英语平均成绩。我无法让main识别我的两个浮点,Java 如何在main方法中插入double?,java,if-statement,main-method,Java,If Statement,Main Method,我想写一个程序来计算我的数学和英语平均成绩。我无法让main识别我的两个浮点,mathGpa和englishGpa。它告诉我让它们成为静态的,但让它们成为静态意味着它们成为字符串,我需要它们保持双倍 import java.util.Scanner; public class GPA { public static void main(String[] args) { double finalGpa=0; mathGpa();
mathGpa
和englishGpa
。它告诉我让它们成为静态的,但让它们成为静态意味着它们成为字符串,我需要它们保持双倍
import java.util.Scanner;
public class GPA {
public static void main(String[] args)
{
double finalGpa=0;
mathGpa();
englishGpa();
finalGpa= (mathGpa + englishGpa)/2;
}
public double mathGpa() {//Begin mathGpa
int Math;
double mathGpa = 0;
System.out.println("Math = ");
Scanner math = new Scanner(System.in);
Math= math.nextInt();
math.close();
if (Math >100){
System.out.println("You have mistyped something");
}
if (Math >= 94){
System.out.println("You have an A");
mathGpa = 4.0;
System.out.println(mathGpa);
}
if (Math < 94 && Math >=90){
System.out.println("You have an A-");
mathGpa = 3.7;
System.out.println(mathGpa);
}
if (Math < 90 && Math >=87){
System.out.println("You have a B+");
mathGpa = 3.3;
System.out.println(mathGpa);
}
if (Math < 87 && Math >=80){
System.out.println("You have a B");
mathGpa = 3.0;
System.out.println(mathGpa);
}
if (Math < 80 && Math >=77){
System.out.println("You have a B-");
mathGpa = 2.7;
System.out.println(mathGpa);
}
if (Math < 77 && Math >=73){
System.out.println("You have a C+");
mathGpa = 2.3;
System.out.println(mathGpa);
}
if (Math < 73 && Math >=70){
System.out.println("You have a C");
mathGpa = 2.0;
System.out.println(mathGpa);
}
if (Math < 70 && Math >=67){
System.out.println("You have a C-");
mathGpa = 1.7;
System.out.println(mathGpa);
}
if (Math < 67 && Math >=67){
System.out.println("You have a D+");
mathGpa = 1.3;
System.out.println(mathGpa);
}
if (Math < 67 && Math >=63){
System.out.println("You have a D");
mathGpa = 1.0;
System.out.println(mathGpa);
}
if (Math < 63 && Math >=60){
System.out.println("You have a D-");
mathGpa = 0.7;
System.out.println(mathGpa);
}
if (Math < 60){
System.out.println("You have a F");
mathGpa = 1.7;
System.out.println(mathGpa);
}
return mathGpa;
}//End mathGpa
public double englishGpa() {//Begin englishGpa
int English;
double englishGpa = 0;
System.out.println("English = ");
Scanner english = new Scanner(System.in);
English= english.nextInt();
english.close();
if (English >100){
System.out.println("You have mistyped something");
}
if (English >= 94){
englishGpa = 4.0;
}
if (English < 94 && English >=90){
englishGpa = 3.7;
}
if (English < 90 && English >=87){
englishGpa = 3.3;
}
if (English < 87 && English >=80){
englishGpa = 3.0;
}
if (English < 80 && English >=77){
englishGpa = 2.7;
}
if (English < 77 && English >=73){
englishGpa = 2.3;
}
if (English < 73 && English >=70){
englishGpa = 2.0;
}
if (English < 70 && English >=67){
englishGpa = 1.7;
}
if (English < 67 && English >=67){
englishGpa = 1.3;
}
if (English < 67 && English >=63){
englishGpa = 1.0;
}
if (English < 63 && English >=60){
englishGpa = 0.7;
}
if (English < 60){
englishGpa = 1.7;
}
return englishGpa;
}//End englishGpa
}//End Class
import java.util.Scanner;
公共课平均成绩{
公共静态void main(字符串[]args)
{
双finalGpa=0;
mathGpa();
英语hgpa();
finalGpa=(数学专业+英语专业)/2;
}
公共双mathGpa(){//Begin mathGpa
整数数学;
双mathGpa=0;
System.out.println(“Math=”);
扫描仪数学=新扫描仪(System.in);
Math=Math.nextInt();
math.close();
如果(数学>100){
System.out.println(“您输入了错误的内容”);
}
如果(数学>=94){
System.out.println(“您有一个A”);
mathGpa=4.0;
System.out.println(mathGpa);
}
如果(数学<94&&Math>=90){
System.out.println(“您有一个A-”);
mathGpa=3.7;
System.out.println(mathGpa);
}
如果(数学<90&&Math>=87){
System.out.println(“您有一个B+”);
mathGpa=3.3;
System.out.println(mathGpa);
}
如果(数学<87&&Math>=80){
System.out.println(“你有一个B”);
mathGpa=3.0;
System.out.println(mathGpa);
}
如果(数学<80&&Math>=77){
System.out.println(“您有一个B-”);
mathGpa=2.7;
System.out.println(mathGpa);
}
如果(数学<77&&Math>=73){
System.out.println(“您有一个C+”);
mathGpa=2.3;
System.out.println(mathGpa);
}
如果(数学<73&&Math>=70){
System.out.println(“你有一个C”);
mathGpa=2.0;
System.out.println(mathGpa);
}
如果(数学<70&&Math>=67){
System.out.println(“您有一个C-”);
mathGpa=1.7;
System.out.println(mathGpa);
}
如果(数学<67&&Math>=67){
System.out.println(“您有一个D+”);
mathGpa=1.3;
System.out.println(mathGpa);
}
如果(数学<67&&Math>=63){
System.out.println(“你有一个D”);
mathGpa=1.0;
System.out.println(mathGpa);
}
如果(数学<63&&Math>=60){
System.out.println(“您有一个D-”);
mathGpa=0.7;
System.out.println(mathGpa);
}
如果(数学<60){
System.out.println(“你有一个F”);
mathGpa=1.7;
System.out.println(mathGpa);
}
返回mathGpa;
}//结束mathGpa
公共双人英语
国际英语;
双重英语hgpa=0;
System.out.println(“English=”);
扫描仪英语=新扫描仪(System.in);
English=English.nextInt();
英语;
如果(英语>100){
System.out.println(“您输入了错误的内容”);
}
如果(英语>=94){
英语hgpa=4.0;
}
如果(英语<94&&English>=90){
英语hgpa=3.7;
}
如果(英语<90&&English>=87){
英语hgpa=3.3;
}
如果(英语<87&&English>=80){
英语hgpa=3.0;
}
如果(英语<80&&English>=77){
英语hgpa=2.7;
}
如果(英语<77&&English>=73){
英语hgpa=2.3;
}
如果(英语<73&&English>=70){
英语hgpa=2.0;
}
如果(英语<70&&English>=67){
英语hgpa=1.7;
}
如果(英语<67&&English>=67){
英语hgpa=1.3;
}
如果(英语<67&&English>=63){
英语hgpa=1.0;
}
如果(英语<63&&English>=60){
英语hgpa=0.7;
}
如果(英语<60){
英语hgpa=1.7;
}
返回英语hgpa;
}//结束英语
}//末级
使方法成为静态并不意味着它们变成字符串,它只是意味着可以调用该方法。当您在mathGpa和englishGpa中声明“double”时,您将返回类型设置为double,除非您将“double”切换为“String”。此外,正如在注释(@Greg Hewgill)中所说的,您应该更改局部变量名
有关“静态”的更多信息
有关方法的详细信息静态变量
对于类的所有对象(或实例),静态变量的值都是相同的。换句话说,您可以认为同一类的所有实例(对象)共享一个静态变量副本。示例#1: 输出:
objectA- counter is: 2
objectB- counter is: 2
类的两个对象共享同一个静态变量计数器副本;这就是为什么它们包含相同的counter值
我不认为声明静态变量会像您提到的那样改变您的变量类型——从double变为String
示例2:
静态变量用于引用所有对象的公共属性(并非每个对象都是唯一的)。例如,大学名称、学生姓名等。。。
在类加载时,类区域只占用内存一次。
使用静态变量的好处是使程序内存高效,从而节省内存
class Person{
int id;
String studentName;
// a static variable
static String collegeName ="MBA";
Person(int i,String n)
{
id = i;
studentName = n;
}
void output ()
{
System.out.println(id +" "+ studentName +" "+ collegeName);
}
public static void main(String args[])
{
Person student1 = new Person(100,"Joe");
Person student2 = new Person(200,"Jef");
student1.output();
student2.output();
}
}
Display:
100 Joe MBA
200 Jef MBA
请注意,为类的所有实例化对象指定了相同的静态值MBA 但是使它们成为静态意味着它们成为字符串???它们是如何变成弦的?静态双精度非常有效这可能是您的直接问题,也可能不是,但是您有一个名为
mathGpa
的函数和一个名为mathGpa
的局部变量(同名)。选择不同的名称。static
仅表示
class Person{
int id;
String studentName;
// a static variable
static String collegeName ="MBA";
Person(int i,String n)
{
id = i;
studentName = n;
}
void output ()
{
System.out.println(id +" "+ studentName +" "+ collegeName);
}
public static void main(String args[])
{
Person student1 = new Person(100,"Joe");
Person student2 = new Person(200,"Jef");
student1.output();
student2.output();
}
}
Display:
100 Joe MBA
200 Jef MBA