此代码应该绘制表格,但事实并非如此。为什么? 代码编译但不打印enything。 这是代码:
import java.util.Arrays;
public class Nizovi{
public static char table[][]= new char[10][10] ;
public static void drawTable(){
// this should draw table
int k=1;
while(k <= 30){
System.out.print("-");
}
System.out.println();
for(int i=0; i < table.length; i++){
for(int j=0; j < table[i].length; j++){
System.out.print("|"+ table[i][j] + "|");
}
System.out.println();
}
k=1;
while(k <= 30){
System.out.print("-");
}
}
public static void buildTable(){
// and this is supposed to fill it with *
for(char[] row: table){
Arrays.fill(row, '*');
}
}
public static void main (String[] args){
Nizovi.buildTable();
Nizovi.drawTable();
}
}
我看不出我想念的东西。这有什么不对?
答案 0 :(得分:4)
你的循环说while(k <= 30)...
- k怎么会达到30?没有什么能改变它。
答案 1 :(得分:2)
在while块内增加k
:
while(k <= 30){
System.out.print("-");
k++; // add this to your loops
}
在您的代码中,k
未在循环中更新,因此它仍然是1
并且总是小于或等于30
(k <= 30
总是产生{ {1}})
被称为“无尽的循环”
通过递增true
中的k
引用 - 块:
while
(确保更新------------------------------
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
|*||*||*||*||*||*||*||*||*||*|
------------------------------
- 块(因此复数))
答案 2 :(得分:0)
while
循环与for
循环不同。 for
假设您将执行某些操作,因此可以通过执行i++
部分自动增加索引。而只检查条件是否满足。因此,您应该处理条件的状态并自行增加k
循环体中的计数器while
。
答案 3 :(得分:0)
在循环中增加k
while(k <= 30){
System.out.print("-");
k++;
}