我编写的这段代码出现了我不明白如何修复的错误。这就是我想要它做的事情: 创建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;
}
}
}
如果有人能为我解决这个问题并详细解释(和Layman的条款)我做错了什么,我会非常感激。
答案 0 :(得分:4)
对于 start ,这两个看起来都错了:
for (int column = 0; column < array[row].length; column++);
if (arrayelement%2 == 0) || (arrayelement%5 == 0);
在这里,您使用;
作为if
语句和for
循环的整个主体。它相当于:
for (int column = 0; column < array[row].length; column++) {
}
if (arrayelement%2 == 0) || (arrayelement%5 == 0) {
}
我怀疑那不是你的意思。我强烈建议你总是使用大括号for循环和if
语句,即使你在这些大括号中只有一个语句 - 这有助于保持清晰。