当前位置: 首页 > 知识库问答 >
问题:

For循环运行不正确

丌官坚秉
2023-03-14

当我执行这段代码时,输出是“140”,也就是“28*5”,但它应该是“150”,也就是“28+31+30+31+30”,它应该计算两个月“2月”和“7月”之间的天数...所以这意味着for循环不能正常工作还是怎么的?为什么会这样!你能帮我一下吗??PS:我试图将循环中的j++更改为j+1,但Android Studio说“这不是一个声明”

int[] pair = {1,3,5,7,8,10,12};
int[] impair = {4,6,9,11};
int x=0;
int j;
int year=2015;
int mm=2;
int month=7;
String msg="";
if (month>mm) {
    for (j = mm; j<month; j++){
        if (Arrays.asList(impair).contains(j)){
            x = 31 + x;
        }else if(Arrays.asList(pair).contains(j)){
            x = 30 + x;
        }else{
            if (year%4==0) {
                x= 29 + x;
            }else{
                x= 28 + x;
            }
        }
    }
    System.output.println(x);
}

共有1个答案

鲁丰
2023-03-14

您正试图通过调用arrays.aslistint[]转换为列表 。但这会导致单个元素列表 (int[])(原始的int[]),其中不包含J的任何值。原因在arrays.aslist()中给出?--它是泛型方法,类型参数必须是引用类型。int[]是引用类型(和所有数组一样),但int不是。

这就是为什么测试都失败了,并且28被反复选择添加。

pairimpair的声明类型从int[]更改为integer[],以便arrays.aslist将该类型正确地推断为integer(引用类型)。然后包含方法将按预期工作。通过这个更改,我得到150

 类似资料:
  • 我有一个python for循环,它执行一个bash脚本,如下所示(我将其简化为只包含需要显示的内容),我需要它在for循环中同时运行所有这些bash脚本,但要等到它们全部完成后才能继续串联。bash脚本是我唯一希望并行运行的部分。它是在同一for循环的下游做一些需要串联完成的事情。这可能吗? 以下是系列作品。没有脚本的并行执行,因为。如果我删除. etc(),它几乎立即出错,下游的任何东西都不再

  • 这是我的for循环。。。jGRASP说在我的for循环中出现了一个问题,我看不出这个问题,希望能得到一些帮助来修复我的代码。。。 公共类DirectoryLookup{public static void main(String[]args)引发IOException{

  • 问题内容: 只是一个实验程序。但是第二个for循环似乎没有运行。如果我切换for循环的位置;同样,第二个位置的循环不会运行。为什么会这样呢? 问题答案: 文件不是列表。您不能在不倒退文件对象的情况下循环播放它们,因为完成阅读后文件位置不会重置为开始。 您可以在循环之间添加: 但你会 多 由不循环两次更好。您已经在第一个循环中获得了信息。只需循环 一次 : 您的代码仅对列表进行排序;该列表将不符合要

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码:

  • for循环是一种重复控制结构,允许您有效地编写需要执行特定次数的循环。 语法 (Syntax) Perl编程语言中for循环的语法是 - for ( init; condition; increment ) { statement(s); } 这是for循环中的控制流 - init步骤首先执行,只执行一次。 此步骤允许您声明和初始化任何循环控制变量。 只要出现分号,就不需要在此处输入声明。

  • ' for '循环是最紧凑的循环形式。 它包括以下三个重要部分 - loop initialization ,我们将计数器初始化为起始值。 初始化语句在循环开始之前执行。 test statement将测试给定条件是否为真。 如果条件为真,则执行循环内给出的代码,否则控件将退出循环。 iteration statement ,您可以在其中增加或减少计数器。 您可以将所有三个部分放在一行中以分号分隔