Chcę stworzyć 2 metody, jedna ma sczytywać promień koła i przekazywać go do innej która będzie przy jego pomocy obliczała pole i je zwracała do głównej metody programu. Bedę bardzo wdzięczny za sugestie gdzie popełniłem błąd
- Wczytujesz wartść w metodzie
skan
ale NIC Z NIĄ NIE ROBISZ. Zalecam na przykład zwrócić ją z tej funkcji. - Próbujesz wywołać metodę pole() która wymaga argumentu
r
ale wcale go nie podajesz przy wywołaniu.
Generalnie błąd polega na tym że nie rozumiesz co robisz. Skleiłeś kod z jakiegoś gotowca ale nie wiesz co oznacza którakolwiek linijka tego kodu.
Postaram się mniej więcej napisać to co mam w głowie
nie bardzo rozumiem "zwrócić ją z tej funkcji." jest to metoda void która nie zwraca wartości, myślałem że wywołując w mainie metodę skan(); będę mógł potem użyć wartości zawartej w zmiennej r, którą ort! do metody pole() poprzez pole(r)
To nie działa bo r istnieje tylko lokalnie w funkcji skan()
Możesz mieć 10 funkcji i w każdej zmienną o nazwie r ale to nie będzie ta sama zmienna tylko lokalna dla każdej funkcji
Masz dwie możliwości:
r
jest zmienną lokalną i trzeba ją przekazywać
import java.util.Scanner;
public class nauka {
public static double skan() {
System.out.println("podaj promien");
Scanner sk = new Scanner(System.in);
return sk.nextDouble();
}
public static double pole(double r) {
return = Math.PI * r*r;
}
public static void main(String[] args) {
double r = skan();
System.out.println("pole koła wynosi" + pole(r));
}
}
r
jest polem w klasie, widocznym w każdej metodzie
import java.util.Scanner;
public class nauka {
double static r;
public static void skan() {
System.out.println("podaj promien");
Scanner sk = new Scanner(System.in);
r = sk.nextDouble();
}
public static double pole() {
return Math.PI * r*r;
}
public static void main(String[] args) {
skan();
System.out.println("pole koła wynosi" + pole());
}
}
@Czarny Kaczor przespałeś wykład kiedy była mowa o zasięgu zmiennych. Zmienna jest widoczna generalnie tylko w zasięgu {
i }
którymi jest otoczona.
void f(){
int x = 1; //tutaj x istnieje
if(cośtam){
int y = 2; //tutaj y istnieje
}
// tutaj y już nie ma! ale x nadal jest
}
// tutaj nie ma już ani x ani y