DW-CHEN的Java点滴记录-基础1

JDK和JRE

JDK:(Java Develop Kit)Java语句开发软件的工具包,内部包含JRE和开发工具包
JRE:(Java Runtime Environment)Java运行环境,内部包含了JVM和Java核心类库

类:Java文件在代码中的集合体现(类=Java文件,一个Java文件,一个Java类)
类库:存放多个Java文件的仓库
核心类库:Java已经写好的,非常核心的代码仓库

关键词

  • 关键词的字母全部小写
  • 常用的代码编辑器,针对关键词有特殊的颜色标记,非常直观
  • main不是关键词,可以理解为比关键词更关键的一个词,因为JVM在执行代码的时候,只会识别该单词

数据类型

最小信息单元:比特位(bit)通常使用小写字母b表示
计算机最小存储单元:字节(byte)通常使用大写字母B表示,字节是由连续的8个位组成
1byte=8bit

基本数据类型内存占用(字节)
byte1
short2
int4
long8
float4
double8
char2
boolean1

标识符

  • 由数字,字母,下划线和$组成
  • 不能以数字开头
  • 不能是关键词
  • 区分大小写

代码

键盘录入-Scanner

package cn.cdw.demo;
import java.util.Scanner;

/**
 * @author DW-CHEN
 * 键盘录入
 */
public class Demo1 {
    public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);//键盘录入
        while (true) {
            System.out.print("请输入:");
            String str= scanner.nextLine();
            System.out.println("你输入的结果是:" + str);
        }
    }
}

数值拆分

package cn.cdw.demo;
import java.util.Scanner;

/**
 * @author DW-CHEN
 * 数值拆分
 */
public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要拆分的数值:");
        int num=scanner.nextInt();

        int ge=num%10;//获取个位
        int shi=num/10%10;//获取十位
        int bai=num/10/10%10;//获取百位
        //...以此类推
        System.out.println("你输入的数字:"+num+"的数值拆分为:个位 "+ge+",十位 "+shi+",百位 "+bai);
    }
}

三元运算符运用之获取三个数的最大值

package cn.cdw.demo;

/**
 * @author DW-CHEN
 * 三元运算符运用之获取三个数的最大值
 */
public class Demo3 {
    public static void main(String[] args) {
        int i1=52;
        int i2=62;
        int i3=34;

        int temp=i1>i2?i1:i2;//先比较两个数获取到启动最大值
        int max=temp>i3?temp:i3;//然后和第三个数据比较获取最终最大值
        System.out.println(max);

    }
}

if语句

package cn.cdw.demo;
import java.util.Scanner;

/**
 * @author DW-CHEN
 * if语句
 */

public class Demo4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.print("输入你的成绩:");
            int num=scanner.nextInt();
            if (num > 0 && num <= 100) {//成绩范围
                if (num >= 90 && num <= 100) {
                    System.out.println("优秀");
                }else if(num >= 60 && num <= 90) {
                    System.out.println("一般");
                }else {
                    System.out.println("不合格");
                }
            }else{
                System.out.println("输入成绩错误");
            }
        }
    }
}

switch语句

switch语句的case穿透现象:如果case控制语句后面不写break,将会出现穿透现象

  • 现象:当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行直到看见break,或者将整个switch语句执行完毕才会结束。
  • 应用场景:switch语句中如果有多个case给出的语句体出现了重复的,可以考虑时使用case穿透来优化代码
package cn.cdw.demo;
import java.util.Scanner;

/**
 * @author DW-CHEN
 * switch语句
 */

public class Demo5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.print("请输入星期:");
            String str=scanner.nextLine();
            switch (str){
                case "星期一":
                    System.out.println("爬山");
                    break;
                 case "星期二":
                    System.out.println("游泳");
                    break;
                 case "星期三":
                    System.out.println("看书");
                    break;
                 case "星期四":
                    System.out.println("睡觉");
                    break;
                 case "星期五":
                    System.out.println("听音乐");
                    break;
                 case "星期六":
                    System.out.println("锻炼");
                    break;
                 case "星期日":
                    System.out.println("跑步");
                    break;

                default:
                    System.out.println("你输入有误");

            }
        }
    }
}

for循环之计算总和,偶数总和,奇数总和

package cn.cdw.demo;
import java.util.Scanner;

/**
 * @author DW-CHEN
 * for循环之计算总和,偶数总和,奇数总和
 */

public class Demo6 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入你要计算到的数字:");
        int num=scanner.nextInt();

        int sum1=0;
        int sum2=0;
        int sum3=0;
        for (int i = 1; i <= num; i++) {
            sum1+=i;//计算总和
            if (i % 2 == 0) {
              sum2+=i;//计算偶数总和
            }else {
                sum3+=i;//计算奇数总和
            }
        }
        System.out.println("1到"+num+"的总和为:" + sum1);
        System.out.println("1到"+num+"的偶数总和为:" + sum2);
        System.out.println("1到"+num+"的奇数总和为:" + sum3);
    }
}

for循环之找出水仙花数

package cn.cdw.demo;

import java.util.Scanner;

/**
 * @author DW-CHEN
 * for循环之找出水仙花数
 * 水仙花数:水仙花数的个位,十位,百位的立方和等于原数
 * 例如:
 * 123=1³+2³+3³=1+8+27≠123  所以这个123它不是水仙花数
 * 371=3³+7³+1³=27+343+1=371  所以371是水仙花数
 */
public class Demo7 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count=0;//定义个记数变量,当水仙花数量大于2则换下一行打印数据。每行只打印两个数据

        System.out.print("输入最大范围数字:");
        int num = scanner.nextInt();
        if (num >= 100 && num <= 999) {//规定范围100到999
            for (int i = 100; i < num; i++) {
                int ge = i % 10;
                int shi = i / 10 % 10;
                int bai = i / 10 / 10 % 10;

                if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {//水仙花数的个位,十位,百位的立方和等于原数
                    System.out.print("水仙花数:"+i+" ");
                    count++;//每找到一个水仙花数,计数加一
                    if (count % 2 == 0) {//有两个数据了,换行
                        System.out.println();
                    }
                }
            }
        }else {
            System.out.println("输入值不在100到999内");
        }
    }
}

while循环之一张纸对折多少次有珠穆朗玛峰高

package cn.cdw.demo;

/**
 * @author DW-CHEN
 * while循环之一张纸对折多少次有珠穆朗玛峰高
 *一张纸0.1毫米,珠穆朗玛峰高度8844米等于8844000毫米
 */
public class Demo8 {
    public static void main(String[] args) {
        Long num=8844000L;
        float paper=0.1f;
        int count=0;//记录对折次数

        while (paper <= num) {
            paper*=2;//对折
            count++;
            System.out.println("对折第"+count+"次的纸张高度:"+paper/1000+"米");
        }
        System.out.println("总共对折了"+count+"次,现在纸张高度为:"+paper/1000+"米");
    }
}

三种循环的区别

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断,后执行)
  • do… while循环先执行一次循环,然后判断条件是否成立,是否继续执行循环体(先执行,后判断)

for和while的区别

  • for循环的条件控制语句的自增变量是在自己的语法结构中,在for循环结束后,就不能再次被访问到了
  • while循环的条件控制语句的自增变量不在自己的语法结构中,所以在while循环结束后该变量还是可以继续使用。

三种循环的应用场景

  • 明确循环次数,推荐使用for循环
  • 不明确循环次数,推荐使用while循环
  • 很少使用do…while循环

continue,break

continum:用在循环中,基于条件控制,用于跳过某次循环体内容的执行
break:用在循环中,基于条件控制,终止循环体内容的执行,就是结束当前的整个循环

package cn.cdw.demo;

/**
 * @author DW-CHEN
 * continue,break
 */
public class Demo9 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                continue;//跳过这个循环
            }
            if (i == 8) {
                break;//结束整个循环
            }
            System.out.println(i);
        }

        System.out.println("====================================================");

        int i = 0;
        while (i<10){
            System.out.println(i);
            i++;
            if (i == 5) {
                continue;
            }
            if (i == 8) {
                break;
            }
        }

        System.out.println("====================================================");

        int num=1;
        switch (num) {
            case 1:
                System.out.println(1);
            case 2:
                System.out.println(2);
            case 5:
                break;//结束
            default:
                num++;
        }
    }

}

随机数之猜数字游戏-Random

package cn.cdw.demo;

import java.util.Random;
import java.util.Scanner;

/**
 * @author DW-CHEN
 * 随机数之猜数字游戏
 */
public class Demo10 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        int count=10;//只可以猜10次

        int num = random.nextInt(100) + 1;//生成1到100内的任意一个随机数
        while (true) {//死循环
            System.out.print("请输入你猜的数字:");
            int i=scanner.nextInt();
            if (i < num) {
                count--;
                System.out.println("猜小了,你还有" + count + "次机会");
            } else if (i > num) {
                count--;
                System.out.println("猜大了,你还有" + count + "次机会");
            } else if (i == num) {
                System.out.println("恭喜你猜对了"+"正确答案为:"+num);
                break;//结束循环
            }else {
                System.out.println("输入有误");
            }

            if (count == 0) {
                System.out.println("当前次数已用完,游戏结束,下次再来吧!"+"正确答案为:"+num);
                break;//结束循环,游戏结束
            }
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值