operador de interruptor en st nd er º

Brian Wu:

Quiero conseguir un número de 3 dígitos de la entrada del usuario mediante la función de escáner en primer lugar. El número de 3 dígitos puede ser 001 o 999, pero no 000. Entonces necesidad de imprimir este número en una frase "*** ª persona". Digamos que si el número de 3 dígitos es 021 entonces espero que imprimirá "persona 21".

import java.util.Scanner;
public class Main
{
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a value ");
    int abc = input.nextInt();
    String suffix = "";
    if(abc==000){
    System.out.println("invalid input");
    }
    switch(abc%10){ //get the last digit of the value
         case 1: suffix = "st";break;
         case 2: suffix = "nd";break;
         case 3: suffix = "rd";break;
         default: suffix = "th";
    }
    System.out.println(abc+suffix);
    }
}

¿Cómo puedo cambiar mi código de tal manera que el programa verificará 11 12 13 casos 111ª?

barredora:

Esencialmente, también debe primero comprobar si el segundo dígito desde la derecha es 1. Para obtener el segundo dígito desde la derecha, use esta expresión:

number / 10 % 10

El / 10hace que el segundo dígito desde la derecha del primer dígito, y % 10es, como usted sabe, cómo se obtiene el primer dígito de la derecha.

Así que el código se vería así:

if (number / 10 % 10 == 1) { // check second digit from the right first
    suffix = "th";
} else { // if it's not 1, do the switch.
    switch(abc%10){
         case 1: suffix = "st";break;
         case 2: suffix = "nd";break;
         case 3: suffix = "rd";break;
         default: suffix = "th";
    }
}
System.out.println(abc+suffix);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331487&siteId=1
Recomendado
Clasificación