协助Java

时间:2018-03-17 04:11:56

标签: java

请帮我解决下面的问题,我是编程的初学者,试图理解它

group

从主要方法中,向玩家询问土地的行和列。行数 列数应大于0且小于或等于10.如果有任何输入 不正确,显示错误消息并再次询问该输入。 如果所有输入都正确,则从main方法创建LandVille类的对象。行和列 值作为其构造函数的参数传递。

2 个答案:

答案 0 :(得分:0)

以下是使用noopLogger.log(true, 'this WILL log'); noopLogger.log(false, 'this WILL NOT log'); 类接受值的代码:

Scanner

while循环的目的: 如果用户输入无效的号码,则循环继续,要求用户再次输入。 如果用户输入有效号码,则循环停止,程序继续。

Scanner ob = new Scanner(System.in); int row = 0, col = 0; while(true) { System.out.println("Enter the number of rows:"); row = ob.nextInt(); if(row <= 10 && row > 0) break; else System.out.println("Invalid input. Try again."); } while(true) { System.out.println("Enter the number of columns:"); col = ob.nextInt(); if(col <= 10 && col > 0) break; else System.out.println("Invalid input. Try again."); } LandVille landVille = new LandVille(row, col); 是Scanner类的对象,调用ob允许用户输入数字。评论中提供的链接可能有助于理解。

答案 1 :(得分:0)

我理解你的要求。下面是一些代码,可以满足您的需求。

首先,您需要使用对象Scanner与用户进行交互。 其次,最好使用do ... while synthax。有了它,如果提供的答案是正确的,用户将在循环中输入至少一次,然后退出。 最后,其他评论在代码中。

最好的问候。

/* You need to use the object Scanner to interact with the user */

import java.util.Scanner;


public class LandVille {

private int[][] land;
private boolean hasHouse;

public static void main(String args[]) {

    Scanner keyboard = new Scanner(System.in);
    int row = 0, col = 0;


    // enter the number of rows
    // loop until you enter the right row (row can be 1-10)

    do {

        System.out.print("Enter the number of rows:");
        row = keyboard.nextInt();

    } while (row > 10 || row <= 0);


    // enter the number of colums
    // loop until you enter the right col (col can be 1-10)

    do {

        System.out.print("Enter the number of columns:");
        col = keyboard.nextInt();

    } while (col > 10 || col <= 0);

    // when the variables (row, col) are correct, then the object LandVille can be created.

    LandVille landVille = new LandVille(row, col);
    landVille.displayLand();
}

// Task A - constructor
LandVille(int numRows, int numColumns) {
    land = new int[numRows][numColumns];
    for (int i = 0; i < numRows; ++i) {
        for (int j = 0; j < numColumns; ++j) {
            land[i][j] = 0;
        }
    }

    hasHouse = false;
}

// Task B
public void displayLand() {
    for (int i = 0; i < land.length; ++i) {
        for (int j = 0; j < land[i].length; ++j) {
            System.out.print(land[i][j] + " ");
        }
        System.out.println();
    }

}

// Task C
public void clearLand() {
    for (int i = 0; i < land.length; ++i) {
        for (int j = 0; j < land[i].length; ++j) {
            land[i][j] = 0;
        }
    }

    hasHouse = false;
}
}