将Python程序转换为Java
我刚开始上我的第二门计算机科学课!第一门课我们用的是Python,这门课我们用Java。我们的第一个作业(基本上就是练习)是把一个乱七八糟的程序从Python转换成Java,我真是搞得一头雾水。
有没有人能帮我看看我做的这些,给我一些建议?或者推荐一个适合初学者的网站……我对Python的了解也就来自于第一门计算机课。
1) 在Python中
def winCraps():
roll = rollDice()
if roll == 7 or roll == 11:
return True
elif roll == 2 or roll == 3 or roll == 12:
return False
else:
return rollForPoint(roll)
这是我尝试把它转换成Java的代码
public int winCraps{
roll = rollDice();
if (roll = 7 && 11){
return (true);
}
else (roll =2 && 3 && 12){
return(false);
}
else{
return rollforPoint(roll);
}
}
2) Python
def rollDice():
raw_input("Press <Enter> to roll...")
die1 = randrange(1,7)
die2 = randrange(1,7)
sum = die1 + die2
print "You rolled", die1, "+", die2, "=", sum
return sum
这个让我非常困惑。Java中randrange应该是什么呢??
Java
static int rollDice(){
System.out.print("Press <Enter> to roll...");
double die1 = Math.random();
double die2 = Math.random();
die1 = (int) die1*6+1;
die2 = (int) die2*6+1;
int sum = (int)die1 + (int)die2;
System.out.println("You rolled "+die1+ " + "+die2+ " = "+sum+".");
return sum;
}
*请记住,我只是刚开始学习这些东西,哈哈
8 个回答
1
Randrange可以用java.util.Random里的方法来替代。和Python一样,Java也有一个很丰富的标准库,你可以去查阅一下。
2
Java中randrange是什么?
在Java中,你可以通过调用Random类的 nextInt(int n) 方法来获取一个特定范围内的随机整数。例如,
Random rand = new Random();
int a = rand.nextInt(7);
这段代码会给你一个大于等于0且小于7的随机整数。这和Python中的randrange
不完全一样,但你可以把它用作对象数组的索引,或者作为掷骰子的结果。
2
你需要修正你的if语句,"=="这个符号是用来检查两个东西是否相等的,你必须在每个语句的部分中放入你要检查的变量。
public int winCraps{
roll = rollDice();
if (roll == 7 || roll == 11) {
return true;
}
else if(roll == 2 || roll == 3 || roll == 12) {
return false;
}
else{
return rollforPoint(roll);
}
}
在你的rollDice()方法中,你给每个骰子赋值的方式是不对的。我建议你去了解一下随机数(因为这是作业,我就不多说了)。
另外,记住在Java中,你必须每个语句后面都加一个分号。