一个题目是女孩找对象,如果男方身高180cm,资产超过千万,长得帅,那女孩就会一定嫁,如果满足了其中一个条件女孩就决定还是嫁吧,有胜过无
如果男生条件都不满足,那女孩坚决不嫁
本来是个很简单的条件判断,却在运行中出现了问题
import java.util.*;
public class Java {
public static void main(String [] agrs){
Sanner in = new Scanner (System.in);
System.out.println ("请输入身高");
int h =in.nextInt(); //输入语句
System.out.println ("请输入资产(千万)");
int m =in.nextInt();
System.out.println ("请输入是否颜值高");
String b =in.next(); // 此处调函数包 出来
if (h>=180 && m>=1000 && b.equals("yes")) { //判断姑娘一定嫁的条件是否成立
System.out.println ("一定嫁") ;
}else if (h>=180 || m >=1000 || b.equals("yes")){ //判断姑娘是否会嫁
System.out.println ("还是嫁了吧,比上不足,比下有余") ;
}else{ //否则就不嫁
System.out.println ("坚决不嫁");
}
这段代码最初设定的条件语句是这样的(h >=180&& m>=1000&&b == "yes")
在运行时发现输入 175 ,600 和yes三个数据时运行结果为坚决不嫁,这就跟
设想 的不一样,目前只能想到用 equals,来解决这个问题,原因大概是,yes是b
所指向内存的值,并不是完全等于b的值