Существует три программы для запуска различной функции, и мне говорят, чтобы они вызывали их в зависимости от нумерованной опции ввода пользователя. Сначала я включил свои программы, прежде чем добавлять в конец инструкции switch. Я получаю ошибки, меняющиеся в инструкции switch - что именно мне нужно вставить в эти браки для каждого случая? Параметры?Вызов классов в инструкции switch?
Я получаю ошибки, включая ожидаемый класс ошибок.
import java.util.Scanner;
import java.lang.Math;
public class HelperMethod{
public static boolean BookNumber(String a) {
char f;
int e, g, h;
int result = 0;
System.out.println ("Please enter a thirteen digit number");
String a = scanner.nextLine();
if (a.length() == 13){
for (int i = 0; i < 13; i ++) {
f = a.charAt(i);
e = Character.digit(f, 10);
if (i % 2 == 0) {
g = e * 1;
result = result + g;
} else {
g = e * 3;
result = result + g;
}
}
System.out.println ("The added sum of you numbers is " + result);
if (result % 10 == 0) {
System.out.println ("This combination IS a ISBN number");
} else {
System.out.println ("This is NOT an ISBN number");
}
} else {
System.out.println ("This combination is not thirteen digits long");
}
}
public static boolean NewtonsMethod (double guess) {
double guess, fX, fPrimeX, newGuess;
System.out.println ("enter in a value give");
guess = userInputScanner.nextDouble();
System.out.println ("Your guess is " + guess);
double guess;
while (true) {
fX = (6 * Math.pow (guess,4)) - (13 * Math.pow (guess,3)) - (18 * Math.pow (guess,2)) + (7 * guess) + 6;
fPrimeX = (24 * Math.pow (guess,3)) - (39 * Math.pow (guess,2)) - 36 * guess + 7;
newGuess = guess - (fX/fPrimeX);
System.out.println ("A possible root is " + newGuess);
if (Math.abs(newGuess - guess) < 0.00001) {
break;
} else {
guess = newGuess;
}
}
System.out.println ("The root is: " + newGuess);
}
public static void QuadraticFormula (double a, double b, double c) {
Scanner keyboard = new Scanner(System.in);
// Input
System.out.println("Please enter an a value:");
double a = keyboard.nextDouble();
System.out.println("Please enter a b value:");
double b = keyboard.nextDouble();
System.out.println("Please enter a c value:");
double c = keyboard.nextDouble();
// Calculations
double discriminant = b * b - 4 * a * c;
double rootOne = 0, rootTwo = 0;
// Option A
if (discriminant < 0) {
System.out.println("There are no roots!");
} else if (discriminant > 0){
rootOne = (-b + Math.sqrt(discriminant))/(2 * a);
rootTwo = (-b - Math.sqrt(discriminant))/(2 * a);
System.out.println("Your roots are: " + rootOne + " and " + rootTwo);
} else {
rootOne = (-b + Math.sqrt(discriminant))/(2 * a);
System.out.println("Your unique root is: " + rootOne);
}
// Option B
if (discriminant < 0) {
System.out.println("There are no roots!");
} else {
rootOne = (-b + Math.sqrt(discriminant))/(2 * a);
rootTwo = (-b - Math.sqrt(discriminant))/(2 * a);
if (discriminant > 0) {
System.out.println("Your roots are: " + rootOne + " and " + rootTwo);
} else {
System.out.println("Your unique root is: " + rootOne);
}
}
}
public static void main (String[] args) {
Scanner userInputScanner = new Scanner (System.in);
System.out.println ("You have three options. press one for the quadratic Formula, 2 for the newtons Method, and 3 for an ISBN checker.");
int input = userInputScanner.nextInt();
switch (input) {
case 1:
NewtonsMethod (double guess);
break;
case 2:
BookNumber(String a);
break;
case 3:
QuadraticFormula (double a, double b, double c);
break;
}
}
}
Остерегайтесь - после копирования этого кода в мою IDE было отмечено 28 ошибок. – rgettman
Ваш код очень смущен. Вы передаете значения методам, но также имея эти методы для чтения значений из ввода, и вы включаете имя типа в параметр при вызове метода. –
похоже, что вам нужно читать Java немного больше ... прежде чем задавать вопросы здесь. В то время как что-то вроде: NewtonsMethod (двойное предположение); называется сигнатурой метода, NewtonsMethod (догадка); называется вызовом метода. то, что вам нужно в инструкции switch, является вызовом метода NOT подписи метода. вам нужно вызывать уже определенный/реализованный метод, хотя :) – LeTex