我正在尝试自学java的基础知识。我刚刚完成了一个课程,它教会了我python的基础知识,所以我知道if语句和for循环是如何工作的。我在java中制作一个基本程序来测试它们,但if语句不起作用,程序也没有通过for循环。任何帮助都会受到赞赏。
import java.util.Scanner;
public class messingAround {
public static void main(String[] args) {
Scanner play = new Scanner(System.in);
messingAround1 gameObject = new messingAround1();
System.out.println("how many times would you like to play? ");
int time = play.nextInt();
gameObject.play(time);
}
}
import java.util.Scanner;
public class messingAround1 {
public void play(int game){
Scanner ques1 = new Scanner(System.in);
int game2;
String ques;
for(game2 = game; game > 0; game--);
System.out.println("Answer y or n");
ques = ques1.nextLine();
if (ques == "y" ){
System.out.println("You are nice");
} else {
System.out.println("You are not nice");
}
}
}
}
谢谢!
答案 0 :(得分:3)
不要将String
个对象与==
运算符进行比较。而是使用.equals()
方法,因为==
运算符仅比较变量是否指向内存中的同一个地址,.equals()
方法是否比较它们的值。
if ("y".equals(ques)){
System.out.println("You are nice");
} else {
System.out.println("You are not nice");
}
至于for
循环,我认为一切正常,如果你为game
变量提供正值,并且在它的正文之前移除;
。< / p>
for(game2 = game; game > 0; game--) {
//do your stuff
}
答案 1 :(得分:1)
替换
if (ques == "y"){
与
if (ques.equals("y")) {
甚至更好
if ("y".equals(ques)) {
答案 2 :(得分:0)
正如其他人提到的那样,您希望使用.equals()
。
但是,for循环应该如下所示:
for(game2 = game; game2 > 0; game2--){
System.out.println("Answer y or n");
ques = ques1.nextLine();
if (ques.equals("y")){
System.out.println("You are nice");
}else{
System.out.println("You are not nice");
}
}