我正试着自学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");
}
}
}
}谢谢!
发布于 2013-05-28 06:46:30
不要将String对象与==操作符进行比较。请改用.equals()方法,因为==运算符只比较变量是否指向内存中的同一地址,.equals()方法是否比较它们的值。
if ("y".equals(ques)){
System.out.println("You are nice");
} else {
System.out.println("You are not nice");
}至于for循环,我认为如果您为game变量提供了一个正值,并且在它的主体之前删除了;,那么一切都是可以的。
for(game2 = game; game > 0; game--) {
//do your stuff
}发布于 2013-05-28 06:46:02
替换
if (ques == "y"){使用
if (ques.equals("y")) {甚至更好
if ("y".equals(ques)) {发布于 2013-05-28 06:52:26
正如其他每个人都提到的,您想要使用.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");
}
}https://stackoverflow.com/questions/16781431
复制相似问题