首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想让Java从一个输入整数到另一个输入整数计数,打印工作日

我想让Java从一个输入整数到另一个输入整数计数,打印工作日
EN

Stack Overflow用户
提问于 2020-10-22 04:06:47
回答 4查看 87关注 0票数 0

首先,我是一个全新的Java新手,我知道这对你们中的大多数人来说可能真的很容易。但现在我坚持做一个练习。我几乎疯狂地在谷歌上搜索,但我找不到任何关于这个特定问题的有用提示。否则我真的不知道该搜索什么。

我有一段代码,看起来像这样:

导入java.util.Scanner;

公开课周{

公共静态空主要(String[] args) {扫描器输入=新扫描器(System.in);

代码语言:javascript
复制
System.out.println("Type a number: ");
int day = input.nextInt();

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

}}

正如你所看到的,这个程序会提示用户输入一个数字,如果这个数字在1-7之间,程序会用相应的星期几来回答。然而,我现在想要做的是修改代码,以启动计数器或循环或其他什么。我想让它从我的输入数字到指定的中断数+1。假设我输入2,程序将打印:星期二,星期三,星期四,星期五,然后停止。

我只尝试过while,if等语句,但我知道关键就在某个地方。在尝试的过程中,我只成功地让程序打印2五次,或者让我输入无穷大的数字。

任何帮助都将不胜感激!

EN

回答 4

Stack Overflow用户

发布于 2020-10-22 04:25:00

既然你目前正在学习,我将给你一些线索来照亮你要遵循的道路,而不是给出答案。

首先,要解决一个问题,你必须清楚地定义它是什么。我们将假设低于1或大于7的数字不在作用域内。我知道您需要输入两个数字:开始日期和结束日期。您已经知道如何存储第一个数据。第二个是相同的过程。但这其中有一个问题。Scanner.nextInt()使用在控制台中输入的数字,而不是您用来验证值的数字。您必须找到如何在两个nextInt()调用之间使用它。

然后循环。循环应为:

  1. an initialization :循环开始时程序的状态是什么(使用start day值,因为它是第一个要显示的内容)
  2. a
  3. to loop :什么时候循环停止?(使用结束日期值可能+1,因为它是最后一个显示的)
  4. 进化指令:每次执行循环时,都会有一些进展,使程序状态越来越接近结束循环条件(每次循环+1,因为您希望开始和结束之间的所有天数)

更进一步:

我建议你注意切换情况,以避免链式if语句,这些语句对一个variable

票数 1
EN

Stack Overflow用户

发布于 2020-10-22 04:19:46

代码语言:javascript
复制
public class Week {

    public static void main(String[] args) { Scanner input = new Scanner(System.in);

        System.out.println("Type a number: ");
        int day = input.nextInt();
        
        System.out.println("Type a stop number: ");
        int stopDay = input.nextInt();

        for (int i = day; i <= stopDay; i++) {      // if the stopday should be printed, then use '<=', '<' otherwise
            printWeekDay(i);
        }
    }
    
    private static void printWeekDay(int day) {
        if (day == 1) {
            System.out.println("Monday ");
        }
        if (day == 2) {
            System.out.println("Tuesday ");
        }
        if (day == 3) {
            System.out.println("Wednesday ");
        }
        if (day == 4) {
            System.out.println("Thursday ");
        }
        if (day == 5) {
            System.out.println("Friday ");
        }
        if (day == 6) {
            System.out.println("Saturday ");
        }
        if (day == 7) {
            System.out.println("Sunday");
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2020-10-22 05:29:16

您只需创建一个DAYS[]数组,并从该特定索引开始向末尾迭代该数组即可。

代码语言:javascript
复制
String DAYS[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};

System.out.println("Type a number: ");
int day = input.nextInt();

if(day >= 1 && day <= 7) {
  for(int i = day - 1; i < DAYS.length; i++) {
      System.out.println(DAYS[i]);
   }
}
else
   System.out.println("Enter a valid number");

如果您想要通过获取停止索引来停止,逻辑将是相同的。只需将for循环中的DAYS.length替换为所需的stop index

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64471001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档