如果语句和for循环在java中不起作用

时间:2013-05-27 22:42:53

标签: java if-statement for-loop

我正在尝试自学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");
            }       
        }
   }
}

谢谢!

3 个答案:

答案 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");
        }



    }