我的" if语句"即使参数为true,也不要运行

时间:2017-11-15 22:11:12

标签: java if-statement

好的,所以我的代码将编译好像没有错误,但是应该执行的代码不会真正运行。请帮忙。

public static void newGameCheck()   {
    String newCharacter = scan.next();
    if (newCharacter.equals("New game"))    {
    //more code here, but it does not get executed for some reason
    }

另一个例子是:

public static void warriorTurn()    {
    if (warriorAlive==true) {
        etut.choosingTarget();
        int target= scan.nextInt();
        System.out.println("Now type in which ability you want him to use, make sure to use capitals");
        warrior_Weapons_and_Abilities();


String ability= scan.next();
            if (ability.equals("Anduril, Foe of Terror"))   {
                int damage= 100+((int) (Math.random()*50));
                etut.loseHealth(target, damage);
                mana2=mana2-0;
                etut.displayHealth(target);         
            }
            else if (ability.equals("Aethereal Blades"))    {


int damage= 250+((int) (Math.random()*100));
                etut.loseHealth(target, damage);
                mana2=mana2-2;
                etut.displayHealth(target);             
            }
            else if (ability.equals("Potion"))  {
            health2=health2+100;
            mana=mana-0;
            etut.displayHealth(target);




    }

这里^,每当我输入能力名称时,代码仍然不会执行

2 个答案:

答案 0 :(得分:1)

将所有scan.next()更改为scan.nextLine()scan.next()只会读一个字。

答案 1 :(得分:0)

Scanner上的next()方法返回下一个标记。它可能只是返回第一个单词,除非你将分隔符设置为换行符。