Java - Calculadora(Do While)

Estou trabalhando em um código que consiste em realizar as operações básicas (soma, subtração, multiplicação e divisão) entre dois números, e gostaria de saber se estou seguindo o caminho correto. Segue o código abaixo:

public class App {
  
  public static void main(String[] args) {
    Scanner scanner = new scanner(System.in);
    float n1 = 0; n2 = 0;
    
    do {
      System.out.println("Digite um numero: ");
      n1 = scanner.nextInt();
      
      System.out.println("Digite outro: ");
      n2 = Scanner.nextInt();
      
      som = n1 + n2;
      sub = n1 - n2;
      mult = n1 * n2;
      div = n1 / n2;
      
      System.out.println("Resultado da soma: " +som);
      System.out.println("Resultado da subtracao: " +sub);
      System.out.println("Resultado da multiplicacao: " +mult);
      System.out.println("Resultado da divisao: " +div);
      System.out.println("Deseja repetir a operacao?");
      
      String com = scanner.nextLine;
      
      if (com.equals("Sim")) {
        System.out.println("Repita o procedimento.");
      }
      
      while(com.equals("Nao"));
      System.out.println("Operacao finalizada.");
    }
  }
}

E caso alguém pergunte… sim, eu sei que está dando erro, e também gostaria de saber o por quê disso.

Posta aqui qual erro deu aí, por gentileza.

Boas, veja se ajuda

public class Calcular {

    public double calculadora(double num1, double num2, String operador) {
        double resultado = 0;
        switch (operador) {
            case "+":
                resultado = num1 + num2;
                break;
            case "-":
                resultado = num1 - num2;
                break;
            case "/":
                resultado = num1 / num2;
                break;
            case "*":
                resultado = num1 * num2;
                break;
        }
        System.out.println("O resultado da operação é: " + resultado);
        return resultado;
    }

    public static void main(String[] args) {
        Calcular calculadora = new Calcular();
        Scanner obj = new Scanner(System.in);
        boolean sair = false;
        do {
            System.out.println("introduza numero 1");
            double num1 = obj.nextDouble();
            System.out.println("introduza numero 2");
            double num2 = obj.nextDouble();
            System.out.println("introduza operador");
            obj.nextLine();
            String operador = obj.next();
            calculadora.calculadora(num1, num2, operador);
            System.out.println("Prima 1 para continuar e 0 para sair");
            int out = obj.nextInt();
            if (out == 1) {
                sair = false;
            } else {
                if (out == 0) {
                    sair = true;
                }
            }
        } while (sair != true);
        System.out.println("ATE LOGO :)");

    }
}

Foi esses:
App.java:40: error: while expected
}
^
App.java:41: error: illegal start of expression
}
E não foi apenas nesse código, todos que eu utilizei o comando while aconteceu isso.

Eu fiz um semelhante a esse e deu o mesmo erro:

import java.util.Scanner;
public class App {
public static void main(String[] args) {
float num1, num2;
char com;
Scanner scanner = new Scanner(System.in);
do {
System.out.println(“Pressione um dos simbolos no teclado para realizar determinada operacao: \n”);
System.out.println("\t Soma: +");
System.out.println("\t Subtracao: -");
System.out.println("\t Multiplicacao: “);
System.out.println(”\t Divisao: /");
switch(com) {
case “+”:
System.out.println("Digite o primeiro numero: ");
num1 = scanner.nextFloat();
System.out.println("Digite outro: ");
num2 = scanner.nextFloat();
som = num1 + num2;;
System.out.println("Resultado: " +som);
break;
case “-”:
System.out.println("Digite um numero: ");
num1 = scanner.nextFloat();
System.out.println("Digite outro: ");
num2 = scanner.nextFloat();
sub = num1 - num2;
System.out.println("Resultado: " +sub);
break;
case "
":
System.out.println("Digite um numero: ");
num1 = scanner.nextFloat();
System.out.println("Digit outro: ");
num2 = scanner.nextFloat();
mult = num1 * num2;
System.out.println("Resultado: " +mult);
break;
case “/”:
System.out.println("Digite um numero: ");
num1 = scanner.nextFloat;
System.out.println("Digite outro: ");
num2 = scanner.nextFloat();
div = num1 / num2;
System.out.println("Resultado: " +div);
break;
default:
System.out.println(“Comando nao reconhecido.”);
}
System.out.println(“Deseja realizar outra operacao?”);
String op = scanner.nextLine;
if (op.equals(“Sim”)) {
System.out.println(“Repita o procedimento.”);

           } while(op.equals("Nao"));
              System.out.println("Operacao finalizada.");
           }    
  }

}

Boas amigo, corrigido, repare que tem variáveis que não foram declaradas, exp: mult = num1 * num2; “mult” não está declarado, sub também não e por ai… Quando quer ler uma operação tem de ler o char que declarou, senão o input não reconhece nada exp:“com = scanner.next().charAt(0);”
Para o Switch reconhecer uma variável char tem de estar entre aspas e não duplas aspas. De resto esta feito, já está a funcionar.

import java.util.Scanner;

public class App{

    public static void main(String[] args) {
        float num1, num2;
        char com;
        String op;
        Scanner scanner = new Scanner(System.in);
        do {
            System.out.println("Pressione um dos simbolos no teclado para realizar determinada operacao: \n");
            System.out.println("\t Soma: +");
            System.out.println("\t Subtracao: -");
            System.out.println("\t Multiplicacao: ");
            System.out.println("\t Divisao: /");
            com = scanner.next().charAt(0);
            switch (com) {
                case '+':
                    System.out.println("Digite o primeiro numero: ");
                    num1 = scanner.nextFloat();
                    System.out.println("Digite outro: ");
                    num2 = scanner.nextFloat();
                    float som = num1 + num2;
                    ;
                    System.out.println("Resultado: " + som);
                    break;
                case '-':
                    System.out.println("Digite um numero: ");
                    num1 = scanner.nextFloat();
                    System.out.println("Digite outro: ");
                    num2 = scanner.nextFloat();
                    float sub = num1 - num2;
                    System.out.println("Resultado: " + sub);
                    break;
                case '*':
                    System.out.println("Digite um numero: ");
                    num1 = scanner.nextFloat();
                    System.out.println("Digit outro: ");
                    num2 = scanner.nextFloat();
                    float mult = num1 * num2;
                    System.out.println("Resultado: " + mult);
                    break;
                case '/':
                    System.out.println("Digite um numero: ");
                    num1 = scanner.nextFloat();
                    System.out.println("Digite outro: ");
                    num2 = scanner.nextFloat();
                    float div = num1 / num2;
                    System.out.println("Resultado: " + div);
                    break;
                default:
                    System.out.println("Comando nao reconhecido.");
            }
            System.out.println("Deseja realizar outra operacao (S) para continuar e (N) para sair?");
            scanner.nextLine();
            op = scanner.nextLine();
            if (op.equalsIgnoreCase("S")) {
                System.out.println("Repita o procedimento.");

            }
            
        }    while (op.equalsIgnoreCase("S"));
            System.out.println("Operacao finalizada.");
    }
}

Bom estudo

Você não utilizou o while, utilizou o do-while.

while é assim:

while ( condição ) {
    // código a ser repetido
}

do-while é assim:

do {
    // código a ser repetido
} while ( condição );

No seu caso você esqueceu o } antes do while.