Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在main方法中插入double?_Java_If Statement_Main Method - Fatal编程技术网

Java 如何在main方法中插入double?

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();

我想写一个程序来计算我的数学和英语平均成绩。我无法让main识别我的两个浮点,
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