【实训笔记】第二天:Java基础——语言概述+流程控制

目录

剩余练习

语言概述 

1、数据类型 

数据类型的分类:基本数据类型、引用数据类型

类型转换

2、常用的运算符

流程控制

1、流程控制语句

(1)分支结构

(2)循环结构

小练习


剩余练习

上节实训剩余的练习

import java.util.Scanner;

/**
 * 练习1
 * 提示用户输入姓名和年龄,并打印
 * @author zn
 *
 * 练习2:
 * 提示用户输入学号、班级、座右铭,并打印
 */

public class IdentityDemo01 {
    public static void main(String[] args) {
//        //提示用户输入姓名和年龄
//        //键盘扫描器     表示创建一个Scanner   类型的引用(sc)   指向Scanner类型的对象,其中System.in可以堪称是一个键盘
//        Scanner sc = new Scanner(System.in);
//        //提示输入姓名和年龄
//        System.out.println("请输入你的姓名:");
//        String name = sc.next();
//        System.out.println("请输入你的年龄:");
//        int age = sc.nextInt();
//        System.out.println("我叫" + name + ",今年" + age + "岁了!");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的学号:");
        String num = sc.next();
        System.out.println("请输入你的班级:");
        String classes = sc.next();
        System.out.println("请输入你的座右铭:");
        String motto = sc.next();
        System.out.println("学号:" + num + " 班级:" + classes + " 座右铭:" + motto);
    }
}

语言概述 

1、数据类型 

数据类型的分类:基本数据类型、引用数据类型

(1)基本数据类型: 8种

整型:byte、short、int、long(8个字节,但是如果数据的长度较小的话【正负21亿范围内】,long类型占4个字节,当数据大于正负21亿时,自动转为8字节。)

浮点类型:foat、double

布尔类型:boolean

字符类型:char

(2)引用数据类型:数组、类、枚举、接口...

类型转换

从小到大:自动转换

从大到小:强制类型转换【可能会丢失精度】

2、常用的运算符

算术运算符:加、减、乘、除、除、取余

public class ArithmaticDemo {
    public static void main(String[] args) {
        //加减乘数取余
        int a = 3;
        int b = 5;

        System.out.println(a + b);  //8
        System.out.println(b - a);  //2
        System.out.println(a * b);  //15
        System.out.println(b / a);  //1
        System.out.println(b % a);  //2
    }
}

字符串连接符:+

当+的任意一边有字符串时,做连接操作

关系运算符:大于(>)、小于(<)、等于、大于等于(>=)、小于等于(<=)、不等于(!=),结果都为布尔类型

赋值运算符:=

逻辑运算符:与(&&)、或()、非(!)

逻辑与:当且仅当&&两边都为真时,结果才为真:

逻辑或:任意一边为真时,结果都为真;

非:当表达式为真时,结果为假,表达式为假是,结果为真。

逻辑运算符 与、或的短路特性

逻辑与运算符:当8&前面的表达式为假时,后面不做判断;

逻辑或运算符:当川前面的表达式为真时,后面不做判断

自增减运算符:加加、减减

加加分为前++和后++

减减分为前--和后--

public class AddDemo001 {
    public static void main(String[] args) {
        int a = 3;
        int b = a++;
        System.out.println("b = " + b);// 3
        int c = ++a;
        System.out.println("c = " + c);// 5
    }
}

三目运算符:条件表达式?表达式1:表达式2

若条件表达式为真=>执行表达式1

若条件表达式为假=>执行表达式2

import java.util.Scanner;
//提示用户输入一个三位数的正数,然后进行逆序处理再打印。
public class San {
    public static void main(String[] args) {
        int num;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数的正数:");
        num = sc.nextInt();
        int num1 = num / 100;
        int num2 = num % 100 / 10;
        int num3 = num % 10;
        int num4 = num1;
        num1 = num3;
        num3 = num4;
        num = num1 * 100 + num2 * 10 + num3;
        System.out.println("逆序后的结果为:" + num);
    }
}
import java.util.Scanner;

/**
 * @author zn
 */
public class ThreeEyesDemo {
    /**使用三目运算符判断用户输入的整数是负数、正数还是零*/
    public static void main(String[] args) {
        //提示用户输入一个数
        Scanner sc = new Scanner(System.in);
        //使用三目运算符对用户输入的数进行判断
        System.out.println("请输入一个数:");
        int number = sc.nextInt();
        String s = number > 0 ? "你输入的是一个正数" : (number == 0 ? "你输入的是0" : "你输入的是一个负数");
        System.out.println(s);
    }
}

流程控制

1、流程控制语句

在java中,任何复杂逻辑,都可以使用顺序、分支、循环三种结构进行描述

(1)分支结构

概念:在java中,当需要使用条件判断时,则需要使用分支结构

if分支

语法格式:

if(条件表达式){

语句块

}

执行流程:

若 条件表达式成立,则执行语句块;

若 条件表达式不成立,则执行语句块后面的代码。

import java.util.Scanner;

public class ifDemo01 {
    public static void main(String[] args) {
        //提示用户输入年龄
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();
        //对用户输入的年龄判断
        if(age > 18){
            System.out.println("你可以开开心心的浏览网页");
        }else{
            System.out.println("生活真美好");
        }
    }
}
import java.util.Scanner;

public class ifDemo02 {
    //使用if分支结构,提示用户输入两个数,求最大值
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int a = sc.nextInt();
        System.out.println("请输入第二个数:");
        int b = sc.nextInt();
        int max = a;
        max = max > b ? max : b;
        System.out.println("两数中较大数为:" + max);
        //程序员都是代码喂出来的
    }
}

if-else分支

语法格式:

if(条件表达式){

语句块1;

}else{

语句块2;

}

执行流程:

若条件表达式成立,执行语句块1;

若条件表达式不成立,执行语句块2;

import java.util.Scanner;

/**
 * @author zn
 * 先就业,再择业 顺丰、银行(很香)
 */
public class IfElseDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        double score = sc.nextDouble();
        if(score >= 60){
            System.out.println("恭喜你,及格了");
        }else{
            System.out.println("还需补考哦");
        }
    }
}

if-else-if-else分支

语法格式:

if(条件表达式1){

语句块1;

}else if((条件表达式2){

语句块2:

}elseif(条件表达式n){

语句块n;

}

执行流程:

若条件表达式1成立,执行语句块1;

若条件表达式2成立,执行语句块2;

若条件表达式n成立,执行语句块n;

import java.util.Scanner;

/**
 * @author zn
 */
public class IfElseIfElseDemo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的身份信息:(军人,学生还是普通人)");
        String identify = sc.next();
        //对用户输入的身份信息进行判断
        if("军人".equals(identify)){
            System.out.println("由于您是军人,享受免票");
        }else if ("学生".equals(identify)){
            System.out.println("由于您是学生,享受半价票");
        }else{
            System.out.println("由于你啥也不是,请购买全价票");
        }
    }
}
import java.util.Scanner;

public class IfElseIfElseDemo02 {
    //提示用户输入高考成绩,判断学校学历;
    //清北
    //211
    //一本重点
    //二本
    //补习一下
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的高考成绩:(0~750)");
        int score = sc.nextInt();
        if(score >= 650 && score <= 750){
            System.out.println("清北");
        }else if (score >= 550 && score < 650){
            System.out.println("211");
        }else if (score >= 450 && score < 550){
            System.out.println("一本重点");
        }else if (score >= 350 && score < 450){
            System.out.println("二本");
        }else if (score >=0 && score < 350){
            System.out.println("补习一下");
        }else {
            System.out.println("你输入的成绩有问题,请重新输入!");
        }
    }
}

switch-case分支
switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch语句的原则:
switch语句中的变量类型可以是:byte、short、int或者char。从Java7开始,switch支持字符串 String类型
了,同时cese标签必须为字符串常量或字面量。

switch语句可以拥有多个case语句,每个case后面跟一个要比较的值和冒号。

case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。当变是的值与case 语句的值相等时,那么case语句之后的语句开始执行,直到bxeak语包出现才会跳出switch 语句。当遇到 break语句时,switch语句终止。
程序跳转到switeh语句后面的语句执行,case语句不必须要包含break语句。

如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。

switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但建议在最后一个)
default在没有case语句的值和变是值相等的时候执行。default分支不需要break语句。
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有break,判断是否继续输出,或是跳出判断。
语法格式:
switch(表达式)
case 1:语句块1
break; //可选
case 2:语句块2
break;
case n:语句块n
break;
default 语句块

}

执行流程:

若表达式满足case 1执行case 1中的语句块;

若表达式满足case 2执行case 2中的语句块

若表达式满足case n执行case n中的语句块

都不满足,执行default中的语句块

import java.util.Scanner;

/**
 * @author zn
 */
public class SwitchCaseDemo {
    public static void main(String[] args) {
        //提示用户输入业绩排名
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的业绩名次");
        int num = sc.nextInt();
        switch (num){
            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("游什么游,加班");
        }
    }
}
import java.util.Scanner;

/**
 * @author zn
 */
public class SwitchCaseDemo2 {
    public static void main(String[] args) {
        //提示用户输入月份,判断当月天数(不考虑闰年)
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:");
        //31:1、3、5、7、8、10、12
        //30:4、6、9、11
        //28:2
        int mouth = sc.nextInt();
        switch (mouth){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println("当月天数为31天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("当月天数为30天");
                break;
            case 2:
                System.out.println("当月天数为28天");
                break;
            default:
                System.out.println("你输入的月数有误,请重新输入!");
        }
    }
}

(2)循环结构

for循环

语法格式:

for(初始表达式;条件表达式;修改初始表达式){

循环体;

}

执行流程:

初始表达式=>条件表达式【若成立】=>循环体;=>修改初始表达式=>条件表达式=>若成立。。。。

若不成立=>跳出循环体;

/**
 * @author zn
 */
public class WhileDemo01 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10){
            System.out.print(i + " ");
            i++;
        }
    }
}
import java.util.Scanner;
/**
 * @author zn
 */
public class WhileDemo02 {
    public static void main(String[] args) {
        //跑圈 跑完一圈提示用户是否还能跑,如果不能则结束
        Scanner sc = new Scanner(System.in);
        int i = 1;
        while(true){
            System.out.println("你已经跑了" + i + "圈,是否继续?");
            String str = sc.next();
            if("否".equals(str)){
                System.out.println("不行了,跑不动了!");
                break;
            }else if("是".equals(str)){
                i++;
                System.out.println("加油,加油!你可以!");
            }
        }
    }
}

do-while循环

语法格式:

初始表达式;

do{

循环体;

修改初始表达式

}while(条件表达式);

/**
 * @author zn
 */
public class DoWhileDemo {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.print(i + " ");
            i++;
        }while (i <= 0);
    }//do while循环至少会执行一次
}

双重for循环

语法格式:

for(初始表达式1;条件表达式2;修改初始表达式3{

        for(初始表达式4;条件表达式5;修改初始表达式6){

        循环体;

        }

}        

执行流程:

初始表达式1 =>条件表达式2 =>若成立=>初始表达式4=>条件表达式5 =>循环体 =>修改初始表达式6=>条件表达式5=>若成立=>循环体 =>修改初始表达式6 =>条件表达式=>循环体.…=>不成立=>修改初始表达式3=>条件表达式2=>初始表达式4..=>直到条件表达还是2不成立 =>跳出循坏体

若不成立=>修改表达式3=>条件表达式2=>成立【不成立】若不成立=>跳出循环体,执行后面的代码

注意事项:

1.外层循坏用来控制行数,内层循环用于控制列数;

2.外层循环的变量改动一次,内层循环需要从头到尾执行一遍;(外层循环执行一次,内层循环需要跑一园)

3.今后开发中,如果遇到几行几列时,使用双重循坏,循坏的家套不直超过3层

/**
 * @author zn
 */
public class DoubleForDemo01 {
    public static void main(String[] args) {
        for(int i = 1; i < 6; i++){
            for(int j = 1 ; j <= i; j++){
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println();
        //九九乘法表
        for(int i = 1; i < 10; i++){
            for(int j = 1; j < i + 1; j++){
                System.out.print(i + " * " + j + " = " + i * j + " ");
            }
            System.out.println();
        }
    }
}

小练习

import java.util.Scanner;

/**
 * @author zn
 */
public class IndividualIncomeTax {
    public static void main(String[] args) {
        /*
        计算个人所得税:
        根据用户输入的薪水计算个人所得税并打印出来,其中个税起征点为:5000元,具体规则如下:
        个人所得税起征点每月5000元。个人所得税起征点为5000元/月或60000万元/年,工资范围以及税率:

        1、工资范围在1至5000元之间的,包括5000元,适用个人所得税税率为百分之零;
        2、工资范围在5000至8000元之间的,包括8000元,适用个人所得税税率为百分之三;
        3、工资范围在8000至17000元之间的,包括17000元,适用个人所得税税率为百分之十;
        4、工资范围在17000至30000元之间的,包括30000元,适用个人所得税税率为百分之二十;
        5、工资范围在30000至40000元之间的,包括40000元,适用个人所得税税率为百分之二十五;
        6、工资范围在40000至60000元之间的,包括60000元,适用个人所得税税率为百分之三十;
        7、工资范围在60000至85000元之间的,包括85000元,适用个人所得税税率为百分之三十五;
        8、工资范围在85000元以上的,适用个人所得税税率为百分之四十五。
        */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的薪水:");
        int income = sc.nextInt();
        double taxRate;
        double tax;
        if (income > 0 && income <= 5000){
            System.out.println("您的个人所得税为:0");
        }else if (income > 5000 && income <= 8000){
            taxRate = 0.03;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else if (income > 8000 && income <= 17000){
            taxRate = 0.1;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else if (income > 17000 && income <= 30000){
            taxRate = 0.2;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else if (income > 30000 && income <= 40000){
            taxRate = 0.25;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else if (income > 40000 && income <= 60000){
            taxRate = 0.3;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else if (income > 60000 && income <= 85000){
            taxRate = 0.35;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else if (income > 85000){
            taxRate = 0.45;
            tax = income * taxRate;
            System.out.println("您的个人所得税为:" + tax);
        }else{
            System.out.println("你输入的薪水有误,请重新输入!");
        }
    }
}

  • 28
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值