嗨,我尝试用3个随机字母组成一个猜字母游戏,当我尝试使用以下代码获取一个值时,它总是以int的形式返回给其他程序,但我试图以字母的形式接收它,但是无法计算出来。
import java.util.Random;
public class CodeLetter {
private char letterValue;
int count = 8;
Random rnd = new Random ();
public char codeLetter(){
letterValue = (char)(rnd.nextInt(5)+'A');
System.out.println(letterValue);
return letterValue;
}
}
使用line调用上述代码的代码
letter1 = codeLetter.codeLetter();
但是一旦将其打印到屏幕上,它仍然保留一个int值,而不是char。
该程序要求两个类都为必填项
public class CodeBreaker {
private char letter1;
private char letter2;
private char letter3;
CodeLetter codeLetter = new CodeLetter();
public void CodeBreaker(){
//Welcome Screen
System.out.println("Welcome to CODEBREAKER ");
System.out.println("you have 6 tries to guess the secret 3 letter code.");
System.out.println("The letters Range from A to E");
System.out.println("Goodluck");
System.out.println("The code has no repeat letters");
//end
letter1 = codeLetter.codeLetter();
letter2 = codeLetter.codeLetter();
letter3 = codeLetter.codeLetter();
System.out.println(letter1 + letter2 + letter3);
}
/*public boolean done(){
}
/*private boolean isValid*char){
//- Is the given letter valid?
}*/
public void getGuess(/*int*/){
//- Get guess #
}
public void checkGuess(){
//- Verify the guess
}
public void display(){
//- Display the secret code
}
}
最佳答案
我已经运行了您的程序。我发现波纹管输出。
Welcome to CODEBREAKER
you have 6 tries to guess the secret 3 letter code.
The letters Range from A to E
Goodluck
The code has no repeat letters
B
B
C
199
如果我理解正确,则您对该
199
有问题。我想,您想要的是BBC
而不是199
。这是因为您将+
符号与char类型一起使用,该类型将隐式转换为整数并进行算术运算。因此,您在以下行System.out.println(letter1 + letter2 + letter3);
上遇到问题。您可以分别打印那些不同的字符。顺便说一句,您的
codeletter()
方法按预期返回char。同样,对于这种语言行为,您可以在Strongly vs Weakly type上重新学习