Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Kalkulator
12-30-2014, 05:58 PM (Ten post był ostatnio modyfikowany: 12-30-2014 06:24 PM przez lolo.)
Post: #1
Kalkulator
Witam w ramach ćwiczeń i nauki podstaw javy postanowilem napisać(a jakże) prosty kalkulator. I nie mogę wymyślić jak zrobić aby było dobrze.
Poniżej wlejam kodzik
import java.util.InputMismatchException;
import java.util.Scanner;
public class kalkulatorpro {

	public static void main(String[] args) 
	{
		Scanner in = new Scanner(System.in);
		System.out.println("witaj w kalkulatorze podaj działanie które chcesz wykonać(po każdym czynniku enter)");
		double liczba1 = in.nextDouble();
		String dzialanie = in.nextLine();
		double liczba2= in.nextDouble();
		
		if (dzialanie=="+")
		{
			double wynik = liczba1 + liczba2;
			System.out.println("wynik to " + wynik);
		}
		else if (dzialanie=="-")
		{
			double wynik = liczba1 - liczba2;
			System.out.println("wynik to " + wynik);
		}
		else if (dzialanie=="*")
		{
			double wynik = liczba1 * liczba2;
			System.out.println("wynik to " + wynik);
		}
		else if (dzialanie==":")
		{
			double wynik = liczba1/liczba2;
			System.out.println("wynik to " + wynik);
		}
		else
		{
			System.out.println("error cos zle wstukales");
		}
			
		
		
	}

}

Problem o ile dobrze rozumuje jest w tym że program nie może do stringa przypisać znaczku typu + -, jak sobie z tym poradzić?
Opcje typu dodanie menu 1-dodawanie, 2-odejmowanie itp raczej mnie nie interesują bo to zrobiłbym sam.
Znalazłem co prawda program robiący to tak jak chce ale bardziej skomplikowany sposób który jak na moje początki z javą jest nie do ogarnięcia. Czy da się to w ogóle zrobić w tak prosty sposób jak myślałem?
PS: co polecacie do nauki javy, ukonczylem podstawy na javastarcie a programowanie obiektowe idzie opornie.
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
12-30-2014, 06:38 PM
Post: #2
RE: Kalkulator
1. Używaj znaczników
Kod:
[shcode=java] [/shcode]
2. Po
double liczba1 = in.nextDouble();
użyj
in.nextLine();
3. Do porównywanie Stringów nie używa się operatora == tylko metody equals(). Metoda equals() porównuje zawartość Strinów a == wartość referencji czyli czy wskazują na to samo miejsce w pamięci.

Po tych zmianach program powinien zacząć działać.

GG: 2802571
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
12-30-2014, 09:00 PM (Ten post był ostatnio modyfikowany: 12-30-2014 09:01 PM przez Turtelian.)
Post: #3
RE: Kalkulator
gdy zamiast nextDouble daje nextLine , program od razu pokazuje na marginesie ze nie moze konwertowac stringow do doubli, natomiast gdy jedynie podmieniam == na equals wyskakuje ten sam error w tym samym miejscu error :
1
+
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at kalkulatorpro.main(kalkulatorpro.java:11)
pisze w eclipsie jakby to mialo jakies znaczenie
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
12-30-2014, 09:14 PM
Post: #4
RE: Kalkulator
Nie ma to większego znaczenia.
Miałeś napisać in.nextLine(); po linii double liczba1 = in.nextDouble(); a nie zamiast in.nextDouble().

GG: 2802571
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
12-30-2014, 09:22 PM
Post: #5
RE: Kalkulator
już wszystko działa dziękuje za pomoc, można wiedzieć czemu to in.nextLine(); jest tam niezbędne?
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
12-30-2014, 09:27 PM
Post: #6
RE: Kalkulator
in.nextLine(); musisz wstawić by "skonsumować" znak nowej linii który pozostaje w buforze Scannera po użyciu nextDouble()

GG: 2802571
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości