我正在编写一个有这些方向的程序:
我已经编写了代码但是它以90而不是100结束。我做错了什么?
public class UseTaxpayer {
public static void main(String[] args) {
Taxpayer[] tp = new Taxpayer[10];
for (int i=1; i<10; i++) {
payer[i] = new Taxpayer(i*10, 10000*i);
System.out.println("Taxpayer SSN: " + payer[i].getSS() + " Income: " + tp[i].getIncome());
}
}
}
class Taxpayer {
private int socialsecurity, income;
Taxpayer(int ss, int income) {
socialsecurity = ss;
this.income = income;
}
int getSS() {
return socialsecurity;
}
int getIncome() {
return income;
}
}
我为For语句做了“kludged”一个有效的解决方案: for(int i = 0; i&lt; 10; i ++){ 付款人[i] =新付款人(i * 10 + 10,(10000 *(i + 1))); //根据指示计算SSN和金钱 System.out.println(“纳税人SSN:”+付款人[i] .getSSN() +“收入:”+付款人[i] .getmoney());
如果我在1处启动数组,则会出现一个错误。如果我不添加付款人的“+ 10”部分(i),我得到SSN:0收入10000.
这种方法有效,但想知道是否有更好的方法可以做到这一点。
答案 0 :(得分:4)
使用&lt; =而不是&lt;在你的for循环中。
答案 1 :(得分:1)
你的代码很好。你唯一缺少的就是你说i&lt; 10,这不包括10.这可以通过说i&lt; = 10或i&lt; 11来解决。
答案 2 :(得分:0)
您的for
循环中出现了一个错误的错误。如果您将i<10
更改为i<=10
,则会解决您的问题。
for(int i=1;i<=10;i++){
tp[i]=new Taxpayer(i*10,(10000*i));
System.out.println(" Taxpayer SSN:" + tp[i].getSS()+" Income: "+tp[i].getIncome());
}
答案 3 :(得分:0)
为了让您更容易阅读,您可以这样做:
for(int i=10;i<=100;i = i + 10){
tp[i] = new Taxpayer(i, 1000*i);
}
答案 4 :(得分:0)
你的循环只有9次迭代。检查小于或等于10.
答案 5 :(得分:0)
试试这个......
Taxpayer[] tp = new Taxpayer[11];
for (int i=1; i<=11; i++) {
tp[i] = new Taxpayer(i*10, (10000*i));
System.out.println("Taxpayer SSN: " + tp[i].getSS() + " Income: " +