请帮我解决下面的问题,我是编程的初学者,试图理解它
group
从主要方法中,向玩家询问土地的行和列。行数 列数应大于0且小于或等于10.如果有任何输入 不正确,显示错误消息并再次询问该输入。 如果所有输入都正确,则从main方法创建LandVille类的对象。行和列 值作为其构造函数的参数传递。
答案 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;
}
}