Как я могу получить мое новое значение, чтобы вернуться через операторы if - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь получить количество дней до собрания, чтобы вернуться и распечатать день начала нового собрания, но я получаю целое число вместо строки.

import java.util.Scanner;
public class NextMeeting {
    public static void main(String [] args) {
        int day, daysToMeeting = 0;
        Scanner scan = new Scanner(System.in);

        System.out.println("Enter the day of the week 0-6: ");
         day = scan.nextInt();
        System.out.println("Enter the days to meeting: ");
        daysToMeeting = scan.nextInt();

        if (day == 0) {
            System.out.println("Today is Sunday");
        } else if (day == 1) {
            System.out.println("Today is Monday");
        }
        else if (day == 2) {
            System.out.println("Today is Tuesday");
        }
        else if (day == 3) {
            System.out.println("Today is Wednesday");
        }
        else if (day == 4) {
            System.out.println("Today is Thursday");
        }
        else if (day == 5) {
            System.out.println("Today is Friday");
        }
        else if (day == 6) {
            System.out.println("Today is Saturday");
        }

        System.out.println("Today is: " + day);


        if( daysToMeeting >= 6) {
            day = daysToMeeting - 7;
        }
        else {
            day = day + 6;
        }
        System.out.println("Days to the meeting is " + daysToMeeting + " +days.");
        System.out.println("Meeting day is : " + Integer.toString(day));
    }
}

Выходные данные по дням все еще равны 3, но нам нужно получить их для печати в среду. Я не знаю, как это сделать.

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Вы печатаете целые числа, потому что день - это int.Это может быть неэффективно, но легко исправить это создать переменную String и в другом блоке if-оператора ниже блока if-else daysToMeeting назначить String каждому соответствующему целому числу, например

String meetingDay;
if(day == 1){
    meetingDay = "Monday";
}

, а затемраспечатать, используя строковую переменную.

System.out.println("Meeting day is : " + meetingDay);
0 голосов
/ 18 сентября 2018

Просто создайте метод, который будет возвращать день недели String, передавая день int.Затем распечатайте результат.

public String intToDayName(int day) {
            if(day > 6) {
                day = day % 7; 
            }
           if (day == 0) {

                return "Sunday"; 
            } else if (day == 1) {
                return "Monday";
            }
            else if (day == 2) {
                return "Tuesday"; 
            }
            else if (day == 3) {
                return "Wednesday";
            }
            else if (day == 4) {
                return "Thursday";
            }
            else if (day == 5) {
                return "Friday";
            }
            else if (day == 6) {
                return "Saturday";
            }
           return "Error";

    }

вызывая его в ваших отпечатках:

System.out.println("Meeting day is : " + intToDayName(daysToMeeting));
System.out.println("Today is " + intToDayName(day));

Если вы действительно хотите, чтобы ваш код вернулся и напечатал первые операторы if-else, тогда я предлагаю цикл.

0 голосов
/ 17 сентября 2018

Вы можете использовать DayOfWeek enum.

System.out.println("Meeting day is : " + DayOfWeek.of(day).toString());

Вы также можете удалить вложенный оператор if-else и использовать DayOfWeek enum для отображения «Today is xyz-day».

...