Czemu scanner nie działa?

Czemu scanner nie działa?
darth vader
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona góra
  • Postów: 40
0

W ramach nauki obiektowej javy chciałem zrobić prosty kalkulator (dodawanie i odejmowanie), ale problem pojawił się gdy stworzyłem metodę(nie wiem czy to jest metoda bo jeszcze nie ogarniam). Ma ona pobierać od użytkownika int'a w celu wybrania dodawania lub odejmowania

Kopiuj
public class menu {
    public int a;
    public int b;
    public int wybor;
    public menu(){

    }
public void  menu()
{
    System.out.println("1.Dodawanie");
    System.out.println("2.Odejmowanie");

}

public void wybor(int wybor1){
    this.wybor=wybor1;
    Scanner wyb=new Scanner(System.in);
    wybor1=Scanner.nextInt();
}


}
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Nikt nie siedzi w Twojej głowie - jaki problem się pojawił, gdzie te swoje metody wywołujesz i po co Ci parametr wybor1, skoro już masz takie pole klasy?

  • Rejestracja: dni
  • Ostatnio: dni
0

daj cały kod z mainem (ta metodka od której wszystko się zaczyna :D) i na czym polega to że "nie działa"?

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10230
1

U mnie Scanner działa.

darth vader
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona góra
  • Postów: 40
0

main:

Kopiuj
 public class Kalkulator {
    public static void main(String args[])
    {
        System.out.println("WITAJ W KALKULATORZE!!!");
        menu glowne= new menu();
        glowne.menu();
        glowne.wybor(); 

dostaje takiego error'a:

java: non-static method nextInt() cannot be referenced from a static context

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

Napisałeś Scanner.nextInt(), podczas gdy Scanner nie posiada statycznej metody nextInt.

darth vader
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona góra
  • Postów: 40
0
Patryk27 napisał(a):

Napisałeś Scanner.nextInt(), podczas gdy Scanner nie posiada statycznej metody nextInt.

nadal nie rozumiem, poprawiłem kod:

Kopiuj
 public void wybor() {
        Scanner wyb = new Scanner(System.in);
        wybor = Scanner.nextInt(); 

i ten sam error

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Co w tym kodzie poprawiłeś odnośnie nieposiadania przez klasę Scanner statycznej metody nextInt?

GypsyOne
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Jak utworzyłeś obiekt typu Scanner o nazwie "wyb" to jego używaj przy wywoływaniu metod klasy Scanner.
wybor = wyb.nextInt() będzie poprawnie

darth vader
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona góra
  • Postów: 40
0

Wszystko działa teraz, dzięki :D

darth vader
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona góra
  • Postów: 40
0

Mam jeszcze jedną sprawę, nie zakładając nowego tematu. Czy pisanie w ten sposób jest sensowne? Czy da się to jakoś zmienić? Dlaczego pisząc else if wyskakuje mi błąd braku if skoro jest?

Kopiuj
 public void wynik1()
{

    if(wybor==1);

        this.wynik=this.a+this.b;

       if(wybor==2) 
       {
           this.wynik=this.a-this.b;
       }
    System.out.println("wynik:"+wynik);

} 

Próbowałem na rożne sposoby, tylko ten wypalił.

  • Rejestracja: dni
  • Ostatnio: dni
0

weź sobie klamry ładnie pisz to Ci się nie będzie mieszało

public void wynik1()
{

if(wybor==1){

    this.wynik=this.a+this.b;

}else if(wybor==2)
{
this.wynik=this.a-this.b;
}
System.out.println("wynik:"+wynik);

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.