将字符串转换为布尔值

时间:2016-11-29 12:23:48

标签: java string boolean

我需要使用java代码解决此练习:

我们有一个猴子和一个布尔参数aSmile,我们需要知道猴子是否在微笑,如果它不是“我们是好的”,它是否是“我们在trobule”。

import java.util.Scanner;


public class taxi {

public static void main(String[] args) {

    boolean aSmile;


    Scanner scan = new Scanner(System.in);
    System.out.println("Is monkey A smiling?");
    String answer = scan.nextLine();
    if (answer.equalsIgnoreCase("yes")){
         aSmile = true; 
    }
    else if (answer.equalsIgnoreCase("no")){
        aSmile = false;
    }
    else {
        System.out.println("Sorry, write a correct answer");
    }


    if(aSmile = true){
        System.out.println("We are in trouble");
    }

    else if (aSmile = false){
        System.out.println("We are good!");
    }
   }
}

问题在于,无论我在控制台中写什么,我总是得到“我们处于片段中”。

3 个答案:

答案 0 :(得分:1)

if(aSmile = true){ //Look here.
    System.out.println("We are in trouble");
}

您将值true赋给变量aSmile。

将其替换为:

if(aSmile) { //Or if(aSmile == true) {
  ...

答案 1 :(得分:0)

您正在使用赋值运算符,然后检查布尔值。

if(aSmile = true){
        System.out.println("We are in trouble");
    }

aSmile将始终为真,因为您为其分配了true,然后检查它是否为true。您必须使用==运算符,或者在这种情况下只需

if(aSmile){ // means if aSmile is true
}

答案 2 :(得分:0)

您错误地使用了条件运算符。 它应该像

    if(aSmile){

     }