所以我这里有一个程序,它只是简单地模仿跳棋(但不是跳,而是一个棋子简单地“吃掉”另一个棋子)。我有一个简单的类,它实现了一个“checkers”类对象,并创建了一个名为“chips”的int数组变量。还有一个“while”语句,它在chip[0]和chips[1]整数大于0时创建了一个循环。看起来是这样的:
public static void main(String [] args){
Checkers c = new Checkers();
c.init();
c.printBoard();
int[] chips = c.count();
Scanner kbd = new Scanner(System.in);
while(chips[0]>0 && chips[1]>0){
System.out.println("\nYour move? 4 ints: src row, src col, dest row, dest col separated by [SPACE]");
int srcR = kbd.nextInt();
int srcC = kbd.nextInt();
int destR = kbd.nextInt();
int destC = kbd.nextInt();
kbd.nextLine();
c.move(srcR,srcC,destR,destC);
c.printBoard();
System.out.println(c.getMessage());
c.count();
}
}
Checkers类中的count方法如下所示:
public int[] count() {
int wht=0;
int blk=0;
System.out.println();
for(int i=0; i<board.length;i++) {
for(int z=0; z<board[0].length;z++) {
if(board[i][z] instanceof White) {
wht++;
}
else if(board[i][z] instanceof Black) {
blk++;
}
}
}
int[] arr = {wht,blk};
System.out.println("Whites: "+wht+"\nBlacks: "+blk);
return arr;
}
板是8 x 8(这就是board.length的意思),计数方法只是返回“arr”的值,这样它就可以向“chips”报告,以决定chips[1]和chips[0]是否都大于1(它们在板上都至少有一个白片或黑片)数组只应由两个值组成(即{white,black};)我尝试过以各种方式重新设置整个count()的格式,但这只是代码编译的几种方式之一。
以下是输出:
01234567
0........
1..B...
正如你所看到的,没有白色的碎片了(应该是在顶部)。我会很感激帮助,考虑到这可能是一个容易的解决办法,盯着我的鼻子,但它是恼人的,所以我希望我解释的足够好。谢谢你。
哦顺便说一句,我被告知不要碰主要的方法。
你正在丢弃循环中的芯片数...更改行:
c.count();
进入:
chips = c.count();
//在下面的程序中,在内部,当用户收到指令时,他可以简单地进入哨兵退出while循环,但是,当您得到希望购买的票的结果时,按999并不退出程序
问题内容: 在下面的代码中,我希望循环在+ + =时立即退出。但是,使用语句进行测试表明它一直持续到循环完成为止。我尝试过,然后在语句集中进行设置,但这会导致无限循环。我认为使用然后设置可能有效,但也可以一直运行到循环结束为止。什么是最优雅,最快的退出方式?谢谢。 问题答案: 该循环将只匹配条件时,当控制返回到它,即循环完全执行。因此,这就是即使满足条件也不会立即退出程序的原因。 但是,如果条件没
出现的问题是,当用户确实输入了一个正数时,它仍然忽略输入,并要求用户再次输入一个正整数。我想我只是没有正确退出循环,但我不确定是如何退出的。
问题内容: 我正在尝试通过按键盘上的键来使while循环中断。我的代码是: 问题答案: 请勿使用循环获取输入,或。您真正想要的是一行输入,然后将其拆分为一个双打列表。因此,请使用,拆分并解析每个项目。像这样: 这忽略了任何形式的输入验证,但显示了一种通用方法。 这将起作用,因为一旦您单击“ enter”(输入),它将结束第一行,这意味着扫描程序可以越过进入代码的大部分。由于您再也不会尝试阅读任何内
编辑:该问题与fscanf的while循环没有直接关系,而是在用于包含使用fscanf加载的变量的结构的分配中出现了错误 我正在从文件中读取值,并使用它们在使用fscanf的结构中设置参数。我使用Eclipse作为编辑器,并将其调试和gcc作为编译器(从Eclipse内部)。 我下面介绍的由三部分组成:1)我从文件中读入变量的结构的声明。2)我正在读取的文件,以及3)实际从文件中读取的代码。 在所
我有以下代码来下载通过TCP传输的文件: 一旦所有的字节都被处理了(它们总是被处理的,它像正常的一样工作,只是不退出循环),文件就被创建了,没有一个问题,但是,循环没有退出。