当我尝试打印字符串时,我遇到了问题。我希望整个println读取类似“BAR,ORANGE和PLUM”的内容。这些字符串似乎与println语句没有通信。我是java的新手,我非常迷失所以请基本解释你的建议。我不仅非常感谢答案,而且还要解释,这样我就不会再犯这个错误了。谢谢你的时间。
/*
* This program will simulate playing a slot machine.
* It will provide instructions to the user with an initial stake of $50 and then let the user play until either the money runs out or the player quits.
* Author: Zac Saunders
* Version: 1.3
*/
import acm.program.*;
import java.awt.*;
import acm.util.RandomGenerator;
public class SlotMachine_V2 extends GraphicsProgram {
RandomGenerator rgen = new RandomGenerator();
public void run(){
waitForClick();
rollWheels();
}
public void rollWheels(){
Wheel_1();
Wheel_2();
Wheel_3();
println("You rolled:"+aa, + bb, +cc"");
run();
}
public void Wheel_1(){
int a = rgen.nextInt(1, 6);
if( a == 1){//BAR//
String aa =(" BAR, ");
}else if( a == 2){//BELL//
String aa =(" BELL, ");
}else if( a == 3){//PLUM//
String aa =(" PLUM, ");
}else if( a == 4){//ORANGE//
String aa =(" ORANGE, ");
}else if( a == 5){//CHERRY//
String aa =(" CHERRY, ");
}else if( a == 6){//DASH (-)//
String aa =(" -, ");
}
}
public void Wheel_2(){
int b = rgen.nextInt(1, 6);
if( b == 1){//BAR//
String bb =("BAR, ");
}else if( b == 2){//BELL//
String bb =("BELL, ");
}else if( b == 3){//PLUM//
String bb =("PLUM, ");
}else if( b == 4){//ORANGE//
String bb =("ORANGE, ");
}else if( b == 5){//CHERRY//
String bb =("CHERRY, ");
}else if( b == 6){//DASH (-)//
String bb =("-, ");
}
}
public void Wheel_3(){
int c = rgen.nextInt(1, 6);
if( c == 1){//BAR//
String cc =("and BAR");
}else if( c == 2){//BELL//
String cc =("and BELL");
}else if( c == 3){//PLUM//
String cc =("and PLUM");
}else if( c == 4){//ORANGE//
String cc =("and ORANGE");
}else if( c == 5){//CHERRY//
String cc =("and CHERRY");
}else if( c == 6){//DASH (-)//
String cc =("and -");
}
}
}
答案 0 :(得分:3)
你必须在类上声明你的变量。你现在的方式是,在方法中声明新的变量,它们只在那些方法的范围内。
public class SlotMachine_V2 extends GraphicsProgram {
String aa;
String bb;
String cc;
...
}
然后你使用它们:
public void Wheel_1(){
int a = rgen.nextInt(1, 6);
if( a == 1){//BAR//
aa = " BAR, ";
...
}
答案 1 :(得分:2)
您在代码块中声明String aa =(" BAR, ");
,因此可见性仅限于代码块。
尝试将String aa
移至班级,即RandomGenerator rgen = new RandomGenerator();
以下就可以了。
答案 2 :(得分:1)
只需使用
System.out.println(String.format("%s, %s, and %s",aa,bb,cc));
并且不要在aa,bb,cc
周围添加任何逗号