Java学习第三天

Java学习第三天:

前一天内容回顾:
1、类型转换
自动类型转换:同类型间由小往大转
float f1=3.14;
double d1=f1;
double d2=3.14f;

int int1=f1;(false)
f1=123;

强制转换:由大往小转   会失去精度
double d1=3.14;
float f1=(float)d1;

2、算术运算符
int / int 结果还是int类型
%(模运算)
3、比较运算符
计算结果是布尔值(boolean)
练习1:
声明两个变量,交换值,两种方法实现
package cn.qc.javaproject1706.day3;

public class Ex1 {
 public static void main(String[] args){
  //方式一
  int num1=1;
  int num2=2;
  System.out.println("交换前,num1="+num1+",num2="+num2);
  int ret=0;
  ret=num1;
  num1=num2;
  num2=ret;
  System.out.println("交换后,num1="+num1+",num2="+num2);
  //方式二
  int num4=1;
  int num5=2;
  System.out.println("交换前,num4="+num4+",num5="+num5);
       //另一种 num4=num4+num5;
              //num5=num4-num5;
              //num4=num4-num5;
  num4=num5-num4;
  num5=num5-num4;
  num4=num5+num4;
  System.out.println("交换后,num4="+num4+",num5="+num5);
    }
}

练习2:
请输入一个数,判断是奇数还是偶数
package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Ex2 {
 public static void main(String[] args){
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入一个数:");
  int num=ip.nextInt();
  if(num%2!=0){
   System.out.println("这个数是奇数");
  }
  else{System.out.println("这个数是偶数");
  ip.close();
  }
 }

}

今日内容:
1、运算符
2、程序三大结构:
   顺序结构
   选择结构
   循环结构

运算符:
表达式:变量与运算符的组合
int num1=1;
int num2=3;
int ret=num1+num2;

逻辑运算符:
与或非
在编程中,往往需要多个条件,要同时满足 需要满足其一

例子:
登录功能   需要账号和密码,同时正确

逻辑与:&&  表示同时满足  同时为真(true)
login.java
    表达式1   表达式2   结果
&& true      true     true
      false     true     false
      true      false    false
      false     false    false

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Login {
 public static void main(String[] args){
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入账号:");
  String userId=ip.next();
  System.out.println("请输入密码:");
  String userPwd=ip.next();
  if(userId.equals("admin")&&"123456".equals(userPwd)){
   System.out.println("登陆成功!");
  }else{
   System.out.println("账号或密码错误!");
  }
 
 }

}
逻辑或:||  满足其中任何一个条件就可以(只要一个为true)

例子:
征兵条件:你是否为大学生或年满18岁
Levy.java
     表达式1   表达式2   结果
||    true      true     true
      false     true     true
      true      false    true
      false     false    false

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Levy {
 public static void main(String[] args){
  Scanner ip=new Scanner(System.in);
  //年龄要求
  int age=18;
  //是否是大学生
  boolean isStudent=false;
  System.out.println("请输入你的年龄:");
  int ipAge=ip.nextInt();
  System.out.println("你是否是在籍大学生?");
  int flag=ip.nextInt();
  if(flag==1){
   isStudent=true;
  }
  //是否满足条件之一
  if((ipAge>=age)||(isStudent==true)){
   System.out.println("你满足征兵条件!");
  }else{
   System.out.println("你不满足征兵条件!");
  }
 }

}


逻辑非: ! 颠倒是非 

IsExit.java

      表达式1     结果
!    true       false
       false       true

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class IsExit {
 public static void main(String[] args){
  Scanner ip=new Scanner(System.in);
  System.out.println("你是否要退出!");
  int select=ip.nextInt();
//  if(select==1){
//   System.out.println("程序退出!");
//   System.exit(0);   
//  }else{
//   System.out.println("程序继续使用");
//  }
  if(!(select==1)){
   System.out.println("程序继续使用");
  }else{
   System.out.println("程序退出!");
                 //程序关闭
   System.exit(0);
  }
 }

}


练习3:
员工管理系统功能之一
条件一:绩效为优的月数在5个月以上
或者
工作年限在三年以上  同时 正常出勤的月数为10以上
通过输入来判断员工能否被评为优秀

Ex3.java

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Ex3 {
 public static void main(String[] args) {
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入绩效为A的月数:");
  int isA=ip.nextInt();
  System.out.println("请输入你的工作年限:");
  int years=ip.nextInt();
  System.out.println("请输入正常出勤的月数:");
  int months=ip.nextInt();
  if((isA>5)||(years>3&&months>10)){
   System.out.println("被评为优秀!");
  }else{
   System.out.println("不能被评为优秀!");
  }
 }
}


练习4:
员工晋升职称条件
PG  程序员  编码  码农
SE  组长    不编码 设计(业务流程、页面等)  控制质量
PM  项目经理
在本公司参与项目十个以上,并且每个项目平均参与时间五个月以上
或者
工作年限在三年以上,且有两年被评为优秀员工
Ex4.java

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Ex4 {
 public static void main(String[] args) {
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入您参与的项目个数:");
  int proNum=ip.nextInt();
  System.out.println("请输入您每个项目参与的时长:");
  int avgTime=ip.nextInt();
  System.out.println("请输入您的工作年限:");
  int years=ip.nextInt();
  System.out.println("请输入您被评为优秀员工的次数:");
  int count=ip.nextInt();
  if((proNum >= 10 && avgTime >= 5) || (years >= 3 && count >= 2)){
   System.out.println("恭喜您可以晋升!");
  }else{
   System.out.println("您需要努力了!");
  }
 }

}


赋值运算符:
=    int age=10;
     int age=age+2;
     赋值运算符作用:把=的右边的计算结果赋值给=左边的变量或表达式
     先计算=右边
+=  -=    *=   /=   %=
见Demo.java

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
import java.util.Scanner;

public class Demo {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入你的年龄:");
  int age=ip.nextInt();
  //age=age+5;
  //简化为
  age+=5;
  System.out.println("5年后的年龄为:"+age);
  //age-=3    age=age-3
  //age*=3    age=age*3
 }

}

 

总结:
算术运算符、比较运算符、逻辑运算符、赋值运算符
(优先级由高到低)

程序的结构:
顺序结构、选择结构(条件结构)、循环结构

顺序结构:按照编码顺序自上而下逐行编译、执行的

选择结构:是根据条件来执行代码块,符合条件时执行,不符合条件就不执行

if语句:

fi(条件){
  语句块1;
}
if(条件){
   语句块1;
}else{
   语句块2;
}
多重if选择结构
if(条件1){
//
}else if(条件2){
//
}else{
//
}

成绩判断:
输入一个百分制的分数
输入对应的五分制成绩
见代码Score.java

注意要用:(String strScore = "";)


package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Score {
 public static void main(String[] args) {
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入一个成绩:");
  int score=ip.nextInt();
  String strScore = "";
  if(score<60){
   strScore = "不及格";
  }else if(score >= 60 && score<70){
   strScore ="及格";   
  }else if(score >= 70 && score<80){
   strScore ="中等";   
  }else if(score >= 80 && score<90){
   strScore ="良好";   
  }else if(score >= 90 && score<=100){
   strScore ="优秀";   
  }else{
   strScore ="成绩不合理!";
  }
  System.out.println("你的五分制成绩为:"+strScore);
 }

}

 

使用场合:区间值判断  或多情况判断吗
薪资等级查询
3000~5000   1
5001~7000   2
7001~8000   3
8001~10000  4
10000以上   5
嵌套if选择结构
if(条件){
   if(条件){
   }
}

Ex5.java

package cn.qc.javaproject1706.day3;
import java.util.Scanner;
public class Ex5 {
 public static void main(String[] args) {
  Scanner ip=new Scanner(System.in);
  System.out.println("请输入你的薪资:");
  int money=ip.nextInt();
  String strMoney = "";
  if(money >= 3000 && money <=5000){
   strMoney = "为1级";
  }else if(money >= 5001 && money <= 7000){
   strMoney = "为2级";
  }else if(money >= 7001 && money <= 8000){
   strMoney = "为3级";
  }else if(money >= 8001 && money <= 10000){
   strMoney = "为4级";
  }else if(money > 10000){
   strMoney = "为5级";
  }
  System.out.println("你的薪资为:"+strMoney);
 }

}

前提条件:是否为在籍学生
条件:性别:男 100米速度  15S
      性别:女           18S

Demo2.java

package cn.qc.javaproject1706.day3;

import java.util.Scanner;

public class Demo2 {
 public static void main(String[] args) {
  Scanner ip=new Scanner(System.in);
  System.out.println("你是否在籍? 1是 0否");
  int is =ip.nextInt();
       
  if(is==1){
   System.out.println("请输入你的性别:");  
      char sex=ip.next().charAt(0);
      System.out.println("请输入你的百米速度:");
      float speed=ip.nextFloat();
  
  if(sex=='男' && speed <= 15){
   System.out.println("你可以参加男子组百米竞赛!");
  }else if(sex=='女' && speed <= 18){
   System.out.println("你可以参加女子组百米竞赛!");
  }else{
   System.out.println("你跑的太慢了,不具备参赛资格!");
  }
  }else{
   System.out.println("你不在籍,不具备参赛资格!");
  }
 }

}


签订劳动合同条件审核
前提:体检是否通过

条件:是否有上家公司的离职证明
是否是本科生或者专科生
技术面试是否通过

可以签订劳动合同
Ex6.java

package cn.qc.javaproject1706.day3;

import java.util.Scanner;

public class Ex6 {
 public static void main(String[] args) {
  Scanner ip = new Scanner(System.in);
  System.out.println("你的体检是否通过? yes/no");
  String isCheck = ip.next();
  if (isCheck.equals("yes")) {
   System.out.println("是否在上一家公司离职?yes/no");
   String leave = ip.next();
   System.out.println("你的学历是?本科/专科");
   String study = ip.next();
   System.out.println("技术方面是否通过?yes/no");
   String isPass = ip.next();
   if (leave.equals("yes") && (study.equals("本科") || study.equals("专科")) && isPass.equals("yes")) {
    System.out.println("恭喜你,成为公司的一员!");
   } else {
    System.out.println("你的入职未通过!");
   }
  } else {
   System.out.println("不可以签订劳动合同!");
  }
 }
}

开关switch等同于 if
switch(表达式){
   case  值1;
      //语句块
      break;
   case  值2;
      //语句块;
      break;
     default;
      //语句块;
      break;
}
判断身份:
见代码Switch.java

package cn.qc.javaproject1706.day3;

import java.util.Scanner;

public class Switch {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner ip = new Scanner(System.in);
  System.out.println("请输入要验证的身份编号:");
  int num = ip.nextInt();
  String roleName = "";
  switch (num) {
  case 1:
   roleName = "超级管理员";
   break;
  case 2:
   roleName = "一级管理员";
   break;
  case 3:
   roleName = "二级管理员";
   break;
  case 4:
   roleName = "普通用户";
   break;
  default:
   roleName = "编号不存在,输入错误!";
   break;
  }
  System.out.println("对应的角色名称:" + roleName);
 }
}


[说明:]
1、switch表达式的类型
   在JDK1.6以前 只能是int byte short char 类型
   在JDK1.6及以后 增加了String
eg:float  f=3.14f;
   switch(f){
   }  是不允许的

2、break不是必须的,但是省略后会直接进入下一个case里面
break的作用是跳出switch语句块

3、default不是必须的 位置可以放在switch的任何位置

4、case后面的值不允许重复

switch和多重选择结构很多情况可以通用,选择的标准

多重if选择结构更适用于:区间值判断

switch更适用于:等值判断


员工管理系统的应用

Hr.java

package cn.qc.javaproject1706.day3;

import java.util.Scanner;

public class Hr {
 public static void main(String[] args) {
  Scanner ip = new Scanner(System.in);
  System.out.println("********************************");
  System.out.println("***********员工管理系统**********");
  System.out.println("********************************");
  System.out.println("1、查看员工信息");
  System.out.println("2、员工入职办理");
  System.out.println("3、优秀员工评选");
  System.out.println("4、工资发放");
  System.out.println("请输入你要操作的功能序号");
  int menu = ip.nextInt();
  switch (menu) {
  case 1:
   System.out.println("查看员工信息");
   break;
  case 2:
   System.out.println("员工入职办理");
   break;
  case 3:
   System.out.println("优秀员工评选");
   break;
  case 4:
   System.out.println("工资发放");
   break;
  default:
   System.out.println("输入错误!");
   break;
  }
 }

}


明天内容:
单目运算符:++ --
循环运算符

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值