【问题标题】:Permanent While loop Java [duplicate]永久 While 循环 Java [重复]
【发布时间】:2023-04-01 08:00:01
【问题描述】:

我一直在努力处理我的 while 循环,想知道你们是否能看出我的逻辑有问题。

项目的概念

创建一台机器,它将在其存在的其余部分永久循环通过一堆代码。基本上我正在制作一个自动喂猫器,它会在白天的特定时间分配食物。这就是为什么循环必须是永久性的。

到目前为止,这是我的基本代码:

    DateFormat dateFormat = new SimpleDateFormat("HH:mm");                                                                                    // 1.

    Calendar cal = Calendar.getInstance();                                                                                                                      // 2.

    String CurrentTime  = dateFormat.format(cal.getTime());                                                                                 // 3. 

    jTextArea2.setText(CurrentTime);


    String FeedTimeMorning              = "06:00";
    String FeedTimeSnack                = "19:07";
    String FeedTimeMidday               = "12:30";




    boolean TempFeed = false;


     while(TempFeed=false)

     {

     if (FeedTimeMorning.equals(CurrentTime)) { txaOne.setText("FeedCats"+" " +CurrentTime);}


     if (FeedTimeSnack.equals(CurrentTime)){txaOne.setText("FeedCats"+" " +CurrentTime);}


     if(FeedTimeMidday.equals(CurrentTime)){txaOne.setText("FeedCats"+" " +CurrentTime);}

到了指定时间,“喂猫”的文字不会出现。

任何帮助将不胜感激。

【问题讨论】:

  • 如果它必须是永久的,那么为什么不无限循环呢? while(true)
  • while(TempFeed==false)while(true) 可以在这里工作。
  • 没想到..谢谢大佬
  • 请阅读Java naming conventions。它会让你的代码更具可读性。
  • 使用while(true)。写while(TempFeed==false) 是对编码标准的再教育的一个安静的请求。

标签: java while-loop


【解决方案1】:

一个等于 (=) 是赋值,而两个 (==) 是相等,这个

while(TempFeed=false)

应该是一个

while(TempFeed==false)

较短 boolean 否定(完全省略=)喜欢

while(!TempFeed)

使用一个=,它将false 分配给TempFeed 并且计算结果为false(这意味着永远不会进入循环)。

【讨论】:

  • @erickson 想我可能已经问过类似问题的答案了,仍然感谢大家的回答
  • @TheNoobieCoder 我希望我的回答有所帮助;使用 cron 或(如果您必须使用 Java)quartz scheduler 可能也有更好的运气。
猜你喜欢
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
  • 2019-02-19
  • 1970-01-01
  • 2019-02-01
  • 2015-11-01
  • 1970-01-01
相关资源
最近更新 更多