java--equals和模拟用户登录卫语句

1.什么是卫语句

卫语句就是把复杂的条件表达式拆分成多个条件表达式减少嵌套。嵌套了好几层的if - then-else语句,转换为多个if语句,实现它的逻辑,这多条的if语句就是卫语句。

卫语句将某些关键条件优先判断,简化程序流程走向。卫语句往往用于对 if 条件嵌套代码的优化。

在《阿里巴巴Java开发手册》中强制规定:超过 3 层的 *if-else* 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况,以方法多个出口的方式,解决代码中判断分支嵌套的问题,这是逆向思维的体现。



package learnday2;
import java.util.Scanner;
public class Monidenglu {
  public static void main(String[] args) {
      String trueName = "admin";
      int turePass = 1234;
//       //用户登录提交的数据,这里是写死的,应该是用户手动录入的
//       String username = "administrator";
//       int pass = 1234;
      //推荐卫语句进行设计,遇见return,当前方法结束
      //1.获得失败的结果
      Scanner scanner = new Scanner(System.in);
//基本类型的变量和数据都在栈内存里面
//对于局部变量 引用类型和变量名称都在栈内存里
//equals比较字符串的数据
//new出来的内存在堆内存里,之后如果比较就用equals,
//用法a1.equals(a2)
      System.out.println("请录入登录的用户名:");
      String username = scanner.next();
      System.out.println("请录入登录的密码:");
      int pass = scanner.nextInt();
      if(!username.equals(trueName)||pass!=turePass){
          System.out.println("用户名或密码不符");
          return;
      }
      //登录成功后逻辑
      System.out.println("用户登录成功");
      //修改用户信息
      System.out.println("用户信息修改成功");
      System.out.println(username);
      System.out.println(pass);
//       if(trueName==username && turePass==pass){
//           System.out.println("用户登录成功");
//       }else {
//           System.out.println("用户名字或密码不符");
//       }
  }
}
--------------------------------------------------------
package com.sm.zuoye;

public class Task01 {
  public static void main(String[] args) {
      double year = 365;
      double day = 24;
      double hour = 24;
      double minute = 60;
      double speed = 299792.458;
      double question1 = year*day*hour*minute*speed;
      System.out.println("问题一的结果为:"+question1);
      int days = 46;
      int week = 7;
      int weeks = days/week;
      int reDays= days%week;
      System.out.println("问题二的周数为:"+weeks+" 剩余天数为:"+reDays);
      double radius = 1.5;
      double area = Math.PI * radius * radius;
      System.out.println("问题三的结果为:"+area);
      int a,b,c,d,e;
      a = 11;b = 13;c=6;d=7;e=5;
      int f = a>b?a:b;
      int g = c>d?c:d;
      int h = f>g?f:g;
      int i = h>e?h:e;
      System.out.println("问题四的五个整数的最大值为:"+i);
      double sector = Math.PI * Math.pow(26.5,2)*(124.6/360);
      double circular = Math.PI * Math.pow((35.5 - 12.3)/2,2);
      String choose = sector>circular?"选择扇形":"选择圆形";
      System.out.println("问题五的结果为:"+choose);
      int a1 =10,b1 = 20,c1 = 0;
      c1 = a1;
      a1 = b1;
      b1 = c1;
      System.out.println("问题六结果为:a1 = "+a1+"; b1 ="+b1);
      int num = 123;
      int num1 = num/100;
      int num2 = num/10%10;
      int num3 = num%10;
      int result = num1 + num2 +num3;
      System.out.println("问题七的结果为:"+result);
  }
}
 
posted @ 2022-10-06 14:01  学JAVA的旅行者  阅读(126)  评论(0)    收藏  举报