将字符串转换为布尔

问题描述:

我需要使用Java代码来解决这个练习:将字符串转换为布尔

我们有一只猴子和一个布尔参数微笑却把,我们需要知道,如果猴子在微笑,而如果是“我们在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!"); 
    } 
    } 
} 

问题是我总是得到“我们在流脓”,无论我在控制台中写什么。

+5

变化'如果(微笑却把=真){''到如果(微笑却把){'** **或'如果(微笑却把== TRUE){';一个'='是* assignment *。 –

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

您正在将值true赋值给变量aSmile。

将其替换为:

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

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

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

aSmile将永远是真实的,因为你为它分配true,然后检查它是否是true。您必须使用==运营商或在这种情况下,简单地

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

你没有正确使用条件运算符。 应该是这样

if(aSmile){ 

    }