-1

我编写的这段代码出现了我不明白如何修复的错误。这就是我想要它做的事情:创建 3 个案例,允许用户在案例 1 或 2 之间进行选择(任何其他案例都将导致默认案例)

案例 1:从用户那里获取输入(在这种情况下,一个名为 zmultiplier 的双精度输入),获取该双精度,将其乘以数组 z 中的每个元素,并显示结果数组(命名为结果)。

案例2:我想让程序遍历每个数组元素,打印出每个能被2或5整除的数组元素。

默认值:打印“数组 z 未更改”

这是我写的:

package jm;

import java.util.Scanner;

public class Jm {

    public static void main(String[] args) {

Scanner input = new Scanner (System.in);

    int [][] z = {{8,15,22,28,36,40},{43,45,48,59,66,70}};  
    int Case;
    double zmultiplier;
    int arrayelement;
    int row=0;
    int column=0;

    System.out.println("Enter case: ");

    Case = input.nextInt(); 
    switch(Case)
    {
     case 1: 
            System.out.println("Enter number to multiply array z by: ");
    zmultiplier = input.nextDouble(); 
    double [][] result = new double [row][column];
    for (;row < z.length; row++ )
    { for (;column < z[row].length; column++ )
     result[row][column] = result[row][column] * zmultiplier;
        System.out.printf( "%d ", result[row][column]);
    }

            break;

        case 2:
           for ( int row = 0; row < array.length; row++);
            {
            for (int column = 0; column < array[row].length; column++);

                if (arrayelement%2 == 0) || (arrayelement%5 == 0);
                System.out.println(arrayelement); 
                     break;

                default: 
                     System.out.println("array z is not changed");
            break;
    }
}
}

如果有人能为我解决这个问题并详细解释(和外行的话)我做错了什么,我将不胜感激。

4

1 回答 1

4

首先,这两个看起来都是错误的:

for (int column = 0; column < array[row].length; column++);

if (arrayelement%2 == 0) || (arrayelement%5 == 0);

在这里,您使用 a作为语句和循环;的整个主体。它相当于:iffor

for (int column = 0; column < array[row].length; column++) {
}

if (arrayelement%2 == 0) || (arrayelement%5 == 0) {
}

我怀疑这实际上不是你的意思。我强烈建议您始终对循环和if语句使用大括号,即使您在这些大括号中只有一个语句 - 这有助于保持清晰。

于 2013-11-08T14:48:45.207 回答