【发布时间】:2014-10-28 00:54:08
【问题描述】:
我正在为我的高中比赛编写一个实验室。科学。班级。该程序的目标是从文件中读取数据,一次一个整数并打印一个倒三角形。
数据是一个txt文件,包含:3 3 7 4(在文件中数据垂直排列,顶部为3,但由于某种原因我不能在这里格式化)
然后我将.txt 扩展名更改为.dat
它应该打印一个倒三角形,顶行为 3,并且每个连续行的星号少 1(再次,我不知道如何格式化。我试过了,但没有用)。如果 int 为 3,则顶行为 3,如果 int 为 7,则顶行为 7,依此类推。
我不知何故陷入了嵌套的 for 循环,即使我有我的减量运算符最终应该让循环终止,但它没有。你会看到完全的怪异。
public class Triangle2_PR31
{
public static void main(String[] args) throws IOException
{
Scanner triScan = new Scanner(new File("pr31.dat"));//reads file
int a = triScan.nextInt();
System.out.println(a);//prints number for verification
int b;//instantiate
do
{
//a = triScan.nextInt();
for(int x = 1; x<=a; x--)//main for-loop
{
for(b = a; b>=0; b--)//nested for-loop to print asterisks
{
System.out.print("*");
System.out.println(b);//print to see what happened to b
}
System.out.println(b);//print to see if loops gets out here
a--;//decrease a so loop eventually terminates
//Doesnt get out here
}
}
while(triScan.hasNext());
triScan.close();
}
}
当编译器到达嵌套 for 循环中的SOP(b); 行时,在我手动终止程序之前,事情一直变为负 50,000,我让它变为 -200,000 一次是为了好玩。我不明白为什么它不简单地终止。我盯着 eclipse 看了 10 分钟,尝试了各种不同的东西,但我不知道出了什么问题。
【问题讨论】:
-
你的第一个 for 循环应该是 x++ 的初学者
-
真的。我没有注意到这一点。我知道它会出现在我面前。在我发布问题后,我正在处理这个问题大约一个小时,并没有注意到我有错误的操作员。
标签: java for-loop logic do-while