J'essaye d'obtenir le System.out.print sur la même ligne. Je veux que les cas ne soient que des jours (cas 0: "Dimanche") pour pouvoir écrire System.out.println ("Aujourd'hui est" + jour + "et le jour futur est" + m1) mais quand j'essaye ceci, J'obtiens le numéro de cas au lieu de la chaîne (Aujourd'hui est 0 et le jour futur est 0). Je pense qu'il existe une meilleure façon d'écrire la logique par rapport à la façon dont je l'ai:

import java.util.*;

public class HomeWork3 {

    public static void main(String[] args) {

        Scanner input  = new Scanner(System.in);

        System.out.print("Sun = 0, Mon = 1, Tue = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6 ");
        System.out.print("\nEnter today's number: ");
        int day = input.nextInt();
        System.out.print("Enter the number of days that elapsed since today:  ");
        int n1 = input.nextInt();


        //String strD = Integer.toString(day); 

        switch (day){
        case 0: System.out.println("Today is Sunday"); 
        break;
        case 1: System.out.println("Today is Monday");
        break;
        case 2: System.out.println("Today is Tuesday");
        break;
        case 3: System.out.println("Today is Wednesday");
        break;
        case 4: System.out.println("Today is Thursday");
        break;
        case 5: System.out.println("Today is Friday");
        break;
        case 6: System.out.println("Today is Saturday");
        break;
        }
        int m1 = ((day + n1)% 7);

        switch (m1){
        case 0: System.out.println("The future day is Sunday");
        break;
        case 1: System.out.println("The future day is Monday");
        break;
        case 2: System.out.println("The future day is Tuesday");
        break;
        case 3: System.out.println("The future day is Wednesday");
        break;
        case 4: System.out.println("The future day is Thursday");
        break;
        case 5: System.out.println("The future day is Friday");
        break;
        case 6: System.out.println("The future day is Saturday");
        break;
        }
        //String strD = Integer.toString(day);

        //System.out.println(strD + " this might work " + n1);

    }
}

PRODUCTION:

Dim = 0, Lun = 1, Mar = 2, Mer = 3, Jeu = 4, Ven = 5, Sam = 6 Entrez le nombre d'aujourd'hui: 2 Entrez le nombre de jours qui se sont écoulés depuis aujourd'hui: 5 Aujourd'hui est mardi Le jour futur est dimanche

-2
Drolltv65 24 janv. 2017 à 16:19

2 réponses

Qu'en est-il des éléments suivants:

String[] days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
int m1 = ((day + n1)% 7);
String output = String.format("Today is %s, the future day is %s", days[day], days[m1]);
System.out.println(output);

(Évidemment, vous devez vous assurer que le jour <7)

2
Stoat 24 janv. 2017 à 13:32

Parce que vous devez associer int et String, vous pouvez utiliser une carte

public static void main(String[] args) {

    Scanner input  = new Scanner(System.in);
    //add all days into the map with their key (number)
    HashMap<Integer, String> map = new HashMap<Integer, String>();
    map.put(0, "Sunday");
    map.put(1, "Monday");
    map.put(2, "Tuesday");
    map.put(3, "Wednesday");
    map.put(4, "Thursday");
    map.put(5, "Friday");
    map.put(6, "Saturday");

    //Printing all days
    for(int key : map.keySet()){
        System.out.print(key+"="+map.get(key)+", ");
    }
    System.out.print("\nEnter today's number: ");
    int day = input.nextInt();
    System.out.print("Enter the number of days that elapsed since today:  ");
    int n1 = input.nextInt();

    n1  = ((day + n1)% 7);

    System.out.println("Today is "+map.get(day) + ", the future day is " + map.get(n1));

}

Il permet de récupérer la valeur qui correspond à la clé saisie avec rhe scanner

0
azro 24 janv. 2017 à 13:32