Wpis z mikrobloga

Hej Mirki próbuje napisać prosty program w Java ale mam problem gdyż nie wiem dla czego ale nie wyświetla on wyników. Kod się kompiluje, ale nie wi m dla czego po wpisaniu pierwszej i drogiej liczby oraz znaku działania nie wyświetla wyniku,

import java.util.Scanner;
public class K
{
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
double a,b;
System.out.println("Podaj pierwszą liczbę ");
a = scan.nextDouble();
System.out.println("Podaj drógą liczbę ");
b = scan.nextDouble();
System.out.println("Jakie wykonać działanie na liczbach\nDodawnie +\nOdejmowanie -\nDzielenie /\nMnorzenie *");
String a1;
a1 = scan.nextLine();
while (scan.hasNext())
{
if (a1.equals("+")) {
System.out.println(a + b);
}
if (a1.equals("-")) {
System.out.println(a - b);
}
if (a1.equals("/")) {
System.out.println(a / b);
}
if (a1.equals("*")) {
System.out.println(a * b);
}
if (a1.equals(""))
{
break;
}
}
}
}

#java
  • 8
@Bogdan1986: już pomijając to, że używasz pętli do tego typu zagadnienia, to po wpisaniu liczby, enter pozostaje w strumieniu wpisując później znak dodawania czy co tam chcesz w pierwszej kolejności wchodzi enter czyli Twoje a1 nie przechowuje znaku wywołaj pustą metodę nextLine() po wpisaniu drugiej liczby
@bledny
@machoBear
@Dick_Mahoney
Poprawiłem błędy i użyłem switch

package com.examole;

import java.util.Scanner;
public class Main
{
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
double a,b;
char z;
System.out.println("Podaj pierwszą liczbę ");
a = scan.nextDouble();
System.out.println("Podaj drógą liczbę ");
b = scan.nextDouble();
System.out.println("Jakie wykonać działanie na liczbach\nDodawnie +\nOdejmowanie -\nDzielenie /\nMnożenie *");
z = scan.next().charAt(0);
switch (z)
{
case '+':
{
System.out.println(a + b);
break;
}
case '-':
{
@Bogdan1986 polecam się nauczyć po każdorazowym skanerze typów liczbowych wywolac scan.nextLine(); w przypadku gdy prosisz o String nie ma problemu ale spróbuj napisać kod w którym najpierw chcesz uzyskać inta a później String bez i z dodatkową linia ww dostaniesz dwa różne wyniki.