Структура переключателя избегать того, чтобы он показал решения

Я обладаю этим маленьким кодом в java/estoy начиная изучать /

package com.switchtuto;

import java.util.Scanner;

public class switchcase2 {


public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    System.out.println("menu de opciones");
    System.out.println("1: Sumar");
    System.out.println("2: Restar");
    System.out.println("3: Multiplicar");
    System.out.println("4: Dividir");
    System.out.println();
    System.out.println("ingrese su opcion");
    int opcion = scanner.nextInt();

    if(opcion>=1 && opcion<=4){
    System.out.println("Ingrese el primer numero");
    int x = scanner.nextInt();
    System.out.println("Ingrese el segundo numero");
    int y = scanner.nextInt();
    int resultado = 0;

switch (opcion) {
case 1:
resultado= x+y;
break;
case 2:
resultado = x-y;
break;
case 3:
resultado = x*y;
break;
case 4:
resultado =x/y;
break;
default:
    System.out.println("Tu Eres Loco");
    break;
}
System.out.println("Resultado:");
System.out.println(resultado);
}

}
}

и я хотел бы, чтобы программа не показала сообщения прошения числа, когда случай будет default, потому что сначала он просит числа и потом размещенный любое число показывает предупреждение.

Конечный код:

package com.paquetes;

import java.util.Scanner;

public class switchcase2 {


public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    System.out.println("menu de opciones");
    System.out.println("1: Sumar");
    System.out.println("2: Restar");
    System.out.println("3: Multiplicar");
    System.out.println("4: Dividir");
    System.out.println();


     int opcion=0,x=0,y=0,resultado=0;

    do
    {
     System.out.println("Ingrese Opción Válida");
     opcion = scanner.nextInt();
    }while((opcion<1) || (opcion>4)); 

    System.out.println("Ingrese el primer numero");
    x = scanner.nextInt();
    System.out.println("Ingrese el segundo numero");
    y = scanner.nextInt();

    switch (opcion) {
case 1:
resultado= x+y;
break;
case 2:
resultado = x-y;
break;
case 3:
resultado = x*y;
break;
case 4:
resultado =x/y;
break;
default:
    System.out.println("Tu Eres LOCO5");
    break;
}
System.out.println("Resultado:");
System.out.println(resultado);
}
}
1
задан 14.09.2016, 07:03
3 ответа

Ты мог бы использовать Intrucción делать пока (do while), чтобы санкционировать ввод выбора и он не выйдет из цикла пока выбор был между 1 и 4 и чтобы избегать того, чтобы была приведена к сбою программа Exceptions как NumberFormatException , добавлять один try{ } catch(){}

 int opcion=0,x=0,y=0,resultado=0;
  do
  {
   System.out.println("Ingrese Opción Válida");
    try
    {
     opcion = Integer.parseInt(scanner.next());
    }
    catch(NumberFormatException ex){
     System.out.println("No es Número , Verificar su Entrada "+  ex.getMessage());
    }
}
while(opcion<1 || opcion >4);
    // Verifico si no está en el rango si retorna verdadero regresa al hacer
    //luego solicito números si sale del ciclo es porque tengo una opción correcta


System.out.println("Ingrese el primer numero");
 x = scanner.nextInt();
System.out.println("Ingrese el segundo numero");
 y = scanner.nextInt();


switch (opcion) {...}
System.out.println("Resultado "  + resultado);
2
ответ дан 24.11.2019, 13:24
  • 1
    если я помещаю 3, оно не функционирует, только, если я помещаю 5 –  Victor Alejandro Alvarado Vilo 14.09.2016, 06:59
  • 2
    Если ты вводишь три в компьютер, это opci и # 243; n v и # 225; lida, который он состоял бы в том, чтобы умножать, и продвинь, чтобы просить ввод два n и # 250; морские окуни, если он - несовершеннолетний 1 и больше 4 он неправильный и становится перекурсивным до тех пор, пока не будет введен в компьютер правильный ввод –  Dev. Joel 14.09.2016, 07:01
  • 3
    уже я это исправил, у него был немного дьявол jejeje –  Victor Alejandro Alvarado Vilo 14.09.2016, 07:02

Это решение твоей проблемы, на основании анализа твоего кода.

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    System.out.println("menu de opciones");
    System.out.println("1: Sumar");
    System.out.println("2: Restar");
    System.out.println("3: Multiplicar");
    System.out.println("4: Dividir");
    System.out.println();
    System.out.println("ingrese su opcion");
    int opcion = scanner.nextInt();

    if(opcion>=1 && opcion<=4){
        System.out.println("Ingrese el primer numero");
        int x = scanner.nextInt();
        System.out.println("Ingrese el segundo numero");
        int y = scanner.nextInt();
        int resultado = 0;

        switch (opcion) {...}

        System.out.println("Resultado:" + resultado);
    }else{
        System.out.println("Tu Eres Loco");
    }
}
2
ответ дан 24.11.2019, 13:24

если entendГ - ты хочешь твой вопрос, чтобы, если пользователь помещает различное число 1,2,3, или 4 не показал сообщения прошения nГєmeros, так ли это ты мог бы помещать это в if

         System.out.println("ingrese su opcion");
        int opcion = scanner.nextInt();
        //inicializo y declaro las varibles
        int x = 0, y = 0, resultado = 0;
        //si es opcion valida pido los valores por teclado
        if (opcion >= 1 && opcion <= 4) {
            System.out.println("Ingrese el primer numero");
             x = scanner.nextInt();
            System.out.println("Ingrese el segundo numero");
             y = scanner.nextInt();

        }

        switch (opcion) { //codigo que ya tienes


}
1
ответ дан 24.11.2019, 13:24
  • 1
    с этим выбором функционируй, но уже он не использовал бы код внутри переключателя, он хотел состоял в том, чтобы видеть, было ли возможно обусловливая переключатель вступите в брак для того, чтобы был выполнен default, вступите в брак, так как этот остался бы приведенным в негодность –  Victor Alejandro Alvarado Vilo 14.09.2016, 06:50
  • 2
    я не понимаю, который ты имеешь в виду с которым не быть и # 237; эксперт используя код внутри переключателя, podr и # 237; схвати быть немного яснее:)!!! –  oscar_sls 14.09.2016, 06:53
  • 3
    я верю в то, что понимаю уже то, что ты говоришь, должен доставать if вне переключателя, и объявлять переменные x, y, y результат перед if, я изменю ответ для того, чтобы ты разобрался немного в том, что я отношусь! –  oscar_sls 14.09.2016, 06:57
  • 4
    В teor и # 237; если, но if избегает просить данные в opci и # 243; n не санкционируй, что эта эра вопрос твоего post!!! –  oscar_sls 14.09.2016, 07:05

Теги

Похожие вопросы