打印一个 for 循环,Java
Print a for-loop, Java
我正在尝试自学 java。我现在正在重做我以前做过的一些程序,但是是以不同的方式。
现在我被 for 循环困住了。
我有以下代码:
public class Head {
public static void main(String[] args) {
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;
for(int i=0; i<1000; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
if (dice1 == 1){
a++;
}
else if(dice1 == 2){
b++;
}
else if(dice1 == 3){
c++;
}
else if(dice1 == 4){
d++;
}
else if(dice1 == 5){
e++;
}
else if(dice1 == 6){
f++;
}
}
System.out.println("Ones: " + a);
System.out.println("Twos: " + b);
System.out.println("Threes: " + c);
System.out.println("Fours: " + d);
System.out.println("Fives: " + e);
System.out.println("Sixes: " + f);
}
}
这一切都很好,可以做我想做的事。
现在我想用一个方法创建一个构造函数来为我做所有的计数。到目前为止,一切都很好。但是当涉及到打印出来时,输出 returns 一切都是它进行计算的次数。
即,如果我设置 i<5 它打印
1个
2个
3个
4个
5个
6个
五次,不止一次
这是错误的代码:
public class 头 {
public static void main(String[] args) {
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
int f=0;
for(int i=0; i<5; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
Dice diceObject = new Dice(dice1, a, b, c, d, e, f);
diceObject.CountNumbers();
// System.out.println(diceObject);
}
}
}
public class Dice {
private int a=0, b=0, c=0, d=0, e=0, f=0;
private int dice1;
public Dice(int dice1, int a, int b, int c, int d, int e, int f){
this.dice1 = dice1;
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.e = e;
this.f = f;
}
public int getDice1(){
return dice1;
}
public void CountNumbers(){
if (dice1 == 1){
a++;
}
else if(dice1 == 2){
b++;
}
else if(dice1 == 3){
c++;
}
else if(dice1 == 4){
d++;
}
else if(dice1 == 5){
e++;
}
else if(dice1 == 6){
f++;
}
}
}
有什么帮助吗?
非常感谢您的宝贵时间!
有很多东西。
一个是你的一些代码是不必要的。
public Dice(int dice1 /*, int a, int b, int c, int d, int e, int f*/ ){
this.dice1 = dice1;
//this.a = a;
//this.b = b;
//this.c = c;
//this.d = d;
//this.e = e;
//this.f = f;
}
您不需要注释的代码行,因为它们会重置整数 a-f,并且已经完成了。这也意味着您不需要 Head class.
中的变量 a-f
public class Head {
public static void main(String[] args) {
//int a=0;
//int b=0;
//int c=0;
//int d=0;
//int e=0;
//int f=0;
for(int i=0; i<5; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
Dice diceObject = new Dice(dice1 /*, a, b, c, d, e, f*/ );
diceObject.countNumbers();
diceObject.saveResults();
}
System.out.println("A B C D E F");
Dice.displayResults();
} }
同样,不需要的代码片段被注释掉了。
接下来就是写代码的时候
System.out.println(diceObject);
这是行不通的,因为 diceObject 是 class(骰子)的一个实例,它不是一个变量。
我让一切正常工作的方法是添加变量 sa、sb、sc、sd、se 和 sf。
private static int sa = 0, sb = 0, sc = 0, sd = 0, se = 0, sf = 0;
我添加这些是为了保存每次循环运行的结果。我创建了一个 void 来执行此操作,称为 saveResults();变量必须是静态的,因为 void 也是静态的。我将 displayResults 设置为 void(我稍后会详细介绍)静态,以便可以从 Head class.
访问它
public void saveResults() {
sa += a;
sb += b;
sc += c;
sd += d;
se += e;
sf += f;
}
+=就是加的意思;
我做的最后一件事是使 displayResults 无效。它只是使用 System.out.println();
显示变量 sa-sf
public static void displayResults() {
System.out.println(sa + " " + sb + " " + sc + " " + sd + " " + se + " " + sf);
}
这一切共同构成了最终产品。这是代码:
头class:
public class Head {
public static void main(String[] args) {
for(int i=0; i<5; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
Dice diceObject = new Dice(dice1);
diceObject.countNumbers();
diceObject.saveResults();
}
System.out.println("A B C D E F");
Dice.displayResults();
}
}
骰子 class:
public class 骰子 {
private int a=0, b=0, c=0, d=0, e=0, f=0;
私人静态 int sa = 0, sb = 0, sc = 0, sd = 0, se = 0, sf = 0;
private int dice1;
public Dice(int dice1){
this.dice1 = dice1; }
public int getDice1(){
return dice1;
}
public void countNumbers(){
if (dice1 == 1){
a++;
}
else if(dice1 == 2){
b++;
}
else if(dice1 == 3){
c++;
}
else if(dice1 == 4){
d++;
}
else if(dice1 == 5){
e++;
}
else if(dice1 == 6){
f++;
}
}
public void saveResults() {
sa += a;
sb += b;
sc += c;
sd += d;
se += e;
sf += f;
}
public static void displayResults() {
System.out.println(sa + " " + sb + " " + sc + " " + sd + " " + se + " " + sf);
} }
我也是 java 的初学者。巧合的是,有一段时间我一直在尝试自学。 codecademy.com 上有一门课程可以教您基础知识。我推荐它,它是免费的。抱歉 post 这个答案花了很长时间,我花了一段时间才弄清楚哪里出了问题。
我正在尝试自学 java。我现在正在重做我以前做过的一些程序,但是是以不同的方式。 现在我被 for 循环困住了。 我有以下代码:
public class Head {
public static void main(String[] args) {
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;
for(int i=0; i<1000; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
if (dice1 == 1){
a++;
}
else if(dice1 == 2){
b++;
}
else if(dice1 == 3){
c++;
}
else if(dice1 == 4){
d++;
}
else if(dice1 == 5){
e++;
}
else if(dice1 == 6){
f++;
}
}
System.out.println("Ones: " + a);
System.out.println("Twos: " + b);
System.out.println("Threes: " + c);
System.out.println("Fours: " + d);
System.out.println("Fives: " + e);
System.out.println("Sixes: " + f);
}
}
这一切都很好,可以做我想做的事。 现在我想用一个方法创建一个构造函数来为我做所有的计数。到目前为止,一切都很好。但是当涉及到打印出来时,输出 returns 一切都是它进行计算的次数。 即,如果我设置 i<5 它打印 1个 2个 3个 4个 5个 6个 五次,不止一次
这是错误的代码: public class 头 { public static void main(String[] args) {
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
int f=0;
for(int i=0; i<5; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
Dice diceObject = new Dice(dice1, a, b, c, d, e, f);
diceObject.CountNumbers();
// System.out.println(diceObject);
}
}
}
public class Dice {
private int a=0, b=0, c=0, d=0, e=0, f=0;
private int dice1;
public Dice(int dice1, int a, int b, int c, int d, int e, int f){
this.dice1 = dice1;
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.e = e;
this.f = f;
}
public int getDice1(){
return dice1;
}
public void CountNumbers(){
if (dice1 == 1){
a++;
}
else if(dice1 == 2){
b++;
}
else if(dice1 == 3){
c++;
}
else if(dice1 == 4){
d++;
}
else if(dice1 == 5){
e++;
}
else if(dice1 == 6){
f++;
}
}
}
有什么帮助吗? 非常感谢您的宝贵时间!
有很多东西。
一个是你的一些代码是不必要的。
public Dice(int dice1 /*, int a, int b, int c, int d, int e, int f*/ ){
this.dice1 = dice1;
//this.a = a;
//this.b = b;
//this.c = c;
//this.d = d;
//this.e = e;
//this.f = f;
}
您不需要注释的代码行,因为它们会重置整数 a-f,并且已经完成了。这也意味着您不需要 Head class.
中的变量 a-fpublic class Head {
public static void main(String[] args) {
//int a=0;
//int b=0;
//int c=0;
//int d=0;
//int e=0;
//int f=0;
for(int i=0; i<5; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
Dice diceObject = new Dice(dice1 /*, a, b, c, d, e, f*/ );
diceObject.countNumbers();
diceObject.saveResults();
}
System.out.println("A B C D E F");
Dice.displayResults();
} }
同样,不需要的代码片段被注释掉了。
接下来就是写代码的时候
System.out.println(diceObject);
这是行不通的,因为 diceObject 是 class(骰子)的一个实例,它不是一个变量。
我让一切正常工作的方法是添加变量 sa、sb、sc、sd、se 和 sf。
private static int sa = 0, sb = 0, sc = 0, sd = 0, se = 0, sf = 0;
我添加这些是为了保存每次循环运行的结果。我创建了一个 void 来执行此操作,称为 saveResults();变量必须是静态的,因为 void 也是静态的。我将 displayResults 设置为 void(我稍后会详细介绍)静态,以便可以从 Head class.
访问它public void saveResults() {
sa += a;
sb += b;
sc += c;
sd += d;
se += e;
sf += f;
}
+=就是加的意思; 我做的最后一件事是使 displayResults 无效。它只是使用 System.out.println();
显示变量 sa-sfpublic static void displayResults() {
System.out.println(sa + " " + sb + " " + sc + " " + sd + " " + se + " " + sf);
}
这一切共同构成了最终产品。这是代码: 头class:
public class Head {
public static void main(String[] args) {
for(int i=0; i<5; i++){
int dice1 = 1 + (int)(Math.random() * ((6 - 1) + 1));
Dice diceObject = new Dice(dice1);
diceObject.countNumbers();
diceObject.saveResults();
}
System.out.println("A B C D E F");
Dice.displayResults();
}
}
骰子 class:
public class 骰子 {
private int a=0, b=0, c=0, d=0, e=0, f=0;
私人静态 int sa = 0, sb = 0, sc = 0, sd = 0, se = 0, sf = 0;
private int dice1;
public Dice(int dice1){
this.dice1 = dice1; }
public int getDice1(){
return dice1;
}
public void countNumbers(){
if (dice1 == 1){
a++;
}
else if(dice1 == 2){
b++;
}
else if(dice1 == 3){
c++;
}
else if(dice1 == 4){
d++;
}
else if(dice1 == 5){
e++;
}
else if(dice1 == 6){
f++;
}
}
public void saveResults() {
sa += a;
sb += b;
sc += c;
sd += d;
se += e;
sf += f;
}
public static void displayResults() {
System.out.println(sa + " " + sb + " " + sc + " " + sd + " " + se + " " + sf);
} }
我也是 java 的初学者。巧合的是,有一段时间我一直在尝试自学。 codecademy.com 上有一门课程可以教您基础知识。我推荐它,它是免费的。抱歉 post 这个答案花了很长时间,我花了一段时间才弄清楚哪里出了问题。