一段小代码的思考

来源:互联网 发布:mac伪装 编辑:程序博客网 时间:2024/05/22 05:19

一个题目是女孩找对象,如果男方身高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的值

          

0 0
原创粉丝点击