JAVA - Rock Paper Scissors Lab 帮助! (IF/THENS)
JAVA - Rock Paper Scissors Lab help! (IF/THENS)
背景:编程初学者,对这整个 "Java" 非常陌生。
我喜欢帮助,但我不想要直接的答案,更像是一个正确的方向,或者任何我可以学习而不是盲目学习的方式 copy/paste。而不是 "heres the right code" 更多 "hears how you can get the right code"
谢谢:)
好的,所以我的问题是,提示广告 IF/THEN 语句有什么问题。当我 运行 它与提示时,它说找不到符号 - 方法提示(java.lang.String)
没有提示,当我运行它,我输入我的选择后,无论对错,它总是returns"Sorry, that is'nt a choice. Choose rock, paper or scissors!"即使它是对的!
如果您需要有关我的问题的更多信息,请告诉我:)
无论如何这里是 class:
//Player class
import java.util.Scanner;
import java.lang.String;
public class Player
{
private String name;
private String choice;
public Player(String nm)
{
name = nm;
}
public Player(String nm, String ch)
{
name = nm;
choice = ch;
}
public void setName( String nm)
{
name = nm;
}
public void setChoice( String ch )
{
}
public String getChoice()
{
Scanner scan = new Scanner (System.in);
System.out.println("Choose rock, paper or scissors:");
String player = scan.next(); player.toLowerCase();
if ((player != ("rock"))
|| (player != ("paper"))
|| (player != ("scissors")))
{
System.out.println("Sorry, that is'nt a choice. Choose rock, paper or scissors!");
player = prompt("Choose rock, paper or scissors:");
}
else
{
System.out.println("Good choice!");
}
System.out.println("You chose " + player);
return "";
}
public String getName()
{
Scanner scan = new Scanner (System.in);
System.out.println("Whats your name?");
String name = scan.next();
return "";
}
public String toString()
{
return "";
}
}
还有运行纳尔:
public class PlayerRunner
{
public static void main(String[] args)
{
Player s = new Player("Michael Jackson", "rock");
System.out.println(s.getChoice());
System.out.println(s.getName());
//outs rock
//call the getName() method
System.out.println(s); //outs Michael Jackson rock
//set the choice to paper
System.out.println(s); //outs Michael Jackson paper
//instantiate a new Player named jb named Jim Bob that chose scissors
//print out Jim Bob
}
}
这部分的目标是:“使用 Player.java 文件创建播放器。完成播放器构造函数,设置
方法、get 方法和 toString。使用 PlayerRunner.java 测试您的播放器 class."
如果您发现我做错了什么,请告诉我 :) 我还是个初学者,但我来这里是为了学习,而不仅仅是粘贴正确答案然后继续。
谢谢!!
怎么样:
public String getChoice() {
Scanner scan = new Scanner(System.in);
System.out.println("Choose rock, paper or scissors:");
String player = scan.next();
while ((!player.equalsIgnoreCase("rock"))
&& !player.equalsIgnoreCase("paper")
&& !player.equalsIgnoreCase("scissors")) {
System.out.println("Sorry, that is'nt a choice. Choose rock, paper or scissors!");
System.out.println("Choose rock, paper or scissors:");
player = scan.next();
}
System.out.println("Good choice!");
System.out.println("You chose " + player);
return "";
}
当您使用 ==
运算符时,您是在比较两个对象是否相同,或者两个基本类型的值是否相同。
由于字符串实际上是Java中的一个对象,
String a = "string";
String b = "string";
System.out.println(a == b);
将 return 为假,但是
String a = "string";
String b = a;
System.out.println(a == b);
将 return 为真。
相反,如果你调用String class的equals
方法,你可以比较两个值是否相同。
String a = "string";
String b = "string";
System.out.println(a.equals(b));
在您的情况下,player != ("rock")
将始终评估为 true,这看起来会导致一些问题。
您可以在这里阅读更多内容:Java String.equals versus ==
背景:编程初学者,对这整个 "Java" 非常陌生。
我喜欢帮助,但我不想要直接的答案,更像是一个正确的方向,或者任何我可以学习而不是盲目学习的方式 copy/paste。而不是 "heres the right code" 更多 "hears how you can get the right code" 谢谢:)
好的,所以我的问题是,提示广告 IF/THEN 语句有什么问题。当我 运行 它与提示时,它说找不到符号 - 方法提示(java.lang.String) 没有提示,当我运行它,我输入我的选择后,无论对错,它总是returns"Sorry, that is'nt a choice. Choose rock, paper or scissors!"即使它是对的!
如果您需要有关我的问题的更多信息,请告诉我:) 无论如何这里是 class:
//Player class
import java.util.Scanner;
import java.lang.String;
public class Player
{
private String name;
private String choice;
public Player(String nm)
{
name = nm;
}
public Player(String nm, String ch)
{
name = nm;
choice = ch;
}
public void setName( String nm)
{
name = nm;
}
public void setChoice( String ch )
{
}
public String getChoice()
{
Scanner scan = new Scanner (System.in);
System.out.println("Choose rock, paper or scissors:");
String player = scan.next(); player.toLowerCase();
if ((player != ("rock"))
|| (player != ("paper"))
|| (player != ("scissors")))
{
System.out.println("Sorry, that is'nt a choice. Choose rock, paper or scissors!");
player = prompt("Choose rock, paper or scissors:");
}
else
{
System.out.println("Good choice!");
}
System.out.println("You chose " + player);
return "";
}
public String getName()
{
Scanner scan = new Scanner (System.in);
System.out.println("Whats your name?");
String name = scan.next();
return "";
}
public String toString()
{
return "";
}
}
还有运行纳尔:
public class PlayerRunner
{
public static void main(String[] args)
{
Player s = new Player("Michael Jackson", "rock");
System.out.println(s.getChoice());
System.out.println(s.getName());
//outs rock
//call the getName() method
System.out.println(s); //outs Michael Jackson rock
//set the choice to paper
System.out.println(s); //outs Michael Jackson paper
//instantiate a new Player named jb named Jim Bob that chose scissors
//print out Jim Bob
}
}
如果您发现我做错了什么,请告诉我 :) 我还是个初学者,但我来这里是为了学习,而不仅仅是粘贴正确答案然后继续。 谢谢!!
怎么样:
public String getChoice() {
Scanner scan = new Scanner(System.in);
System.out.println("Choose rock, paper or scissors:");
String player = scan.next();
while ((!player.equalsIgnoreCase("rock"))
&& !player.equalsIgnoreCase("paper")
&& !player.equalsIgnoreCase("scissors")) {
System.out.println("Sorry, that is'nt a choice. Choose rock, paper or scissors!");
System.out.println("Choose rock, paper or scissors:");
player = scan.next();
}
System.out.println("Good choice!");
System.out.println("You chose " + player);
return "";
}
当您使用 ==
运算符时,您是在比较两个对象是否相同,或者两个基本类型的值是否相同。
由于字符串实际上是Java中的一个对象,
String a = "string";
String b = "string";
System.out.println(a == b);
将 return 为假,但是
String a = "string";
String b = a;
System.out.println(a == b);
将 return 为真。
相反,如果你调用String class的equals
方法,你可以比较两个值是否相同。
String a = "string";
String b = "string";
System.out.println(a.equals(b));
在您的情况下,player != ("rock")
将始终评估为 true,这看起来会导致一些问题。
您可以在这里阅读更多内容:Java String.equals versus ==