JAVA基础

本文介绍了Java基础的学习内容,包括数据类型转换、使用Scanner获取用户输入,以及流程控制中的分支结构(if和switch)、循环结构(for、while、do-while)及其应用实例,如随机数生成和猜数字游戏。
摘要由CSDN通过智能技术生成

JAVA基础学习笔记(一)(黑马课程及二哥的Java之路)


前言

java基础中需要注意的一些细节


一、数据类型转换与Scanner

主要注意数据类型的转换:
1、自动类型转换:小范围类型的变量可以直接赋值给大范围类型的变量。
2、表达式的自动类型提升:表达式中的最终结果类型是由里面最高的数据类型决定的,最高数据类型是什么,最终的结果的数据类型就是什么
黑马ppt
3、强制类型转换:
在这里插入图片描述
强制类型转换可能出现数据的失真,小数强制类型转换成整数,丢掉小数部分,保留整数部分。
案例:
获取用户键盘输入的数据:键盘录入需要的程序:Scanner

package com.scanner;
import java.util.Scanner;
public class ScannerDemo1 {
    public static void main(String[] args) {
        //导包:一般不需要我们自己导
        //抄写代码,得到一个键盘扫描器对象
        Scanner sc=new Scanner(System.in);
        //3.开始调用sc的功能,来接受用户通过键盘输入的数据
        System.out.println("请您输入您的年龄");
        int age=sc.nextInt();
        //执行到这,等待用户输入一个整数,只有用户点击的回车键,才会接收到数据
        System.out.println("您的年龄是"+age);
        System.out.println("请输入您的名字:");
        String name=sc.next();
        System.out.println(name+"欢迎您进入系统~~");


    }
}

二、流程控制

1、分支结构

(1)if 分支

在这里插入图片描述
在这里插入图片描述

(2)switch分支

使用 switch 分支的几点注意事项
① 表达式类型只能是 byte 、 short 、 int 、 char , JDK5 开始支持枚举, JDK7 开始支持String 、不支持 double 、 float 、 long 。
② case 给出的值不允许重复,且只能是字面量,不能是变量。
③ 正常使用 switch 的时候,不要忘记写 break ,否则会出现穿透现象。
在这里插入图片描述
简单来说,switch穿透性的原因是在某一分支中不存在break所导致的,但是在不同case条件但该分支执行内容相同时,可以借助穿透性来简化代码。(多个case块内容相同的情况下,保留一个case块的代码)

2、循环结构

(1)for循环

(idea中编写for循环的小技巧,输入 for i并点击回车)
for循环的应用实例,在某商城的商品展示页面,每个商品的展示代码相同。以及后台管理系统中的表单显示模块。也可以批量的按要求生成数据,比如生成偶数或者奇数。
案例:水仙花数
“水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数”,因为153=1的三次方+5的三次方+3的三次方

public class forDemo {
    public  static  void main (String []args){
        int a, sum;     //表示100~999
        int i, j, k;//分别表示百位、十位、各位
        for (a = 100; a <= 999; a++) {
            i = a / 100;
            j = (a - i * 100) / 10;
            k = a - i * 100 - j * 10;
            sum = i * i * i + j * j * j + k * k * k;
            //java的运算符,立方要这样写,写成i^3这样,是运算不出来的
            //如果遇到高次的话可以使用循环算出来
            if (sum == a) {
                System.out.println(sum);
            }
        }

    }
}
第二种方法是i,j,k分别表示个,十,百位数
public static void main(String args[]) {
        int sum;
        int i, j, k;//分别表示百位、十位、各位
        for (i = 1; i <= 9; i++) {
            for (j = 0; j <= 9; j++) {
                for (k = 0; k <= 9; k++) {
                    sum = i * i * i + j * j * j + k * k * k;
                    if (i * 100 + j * 10 + k == sum) {
                        System.out.println(sum);
                    }
                }
            }
        }
    }

(2)while循环

在这里插入图片描述
while 案例:
在这里插入图片描述

public class whileDemo {
    public static void main(String[] args) {
        double peakHeight=8848860;
        double paperThickness=0.1;
        int count =0;
        while(paperThickness<peakHeight) {
            paperThickness = paperThickness * 2;
            count++;
        }
        System.out.println("需要折叠多少次"+count);
        System.out.println("最终纸张厚度"+paperThickness);
        }
    }

20240301
在这里插入图片描述

(3)do-while循环

在这里插入图片描述
应用场景举例:12306的刷票系统,直到检测到有票之后才停止循环,先执行,后判定。

(4)循环结构总结
在这里插入图片描述
死循环的三种写法:
在这里插入图片描述
为满足停止循环的需要,了解两个跳转关键字
在这里插入图片描述

案例

(1)生成随机数(加减法)

生成随机数的方法,在借助random函数时也要注意如何生成指定区间的随机数。
例如生成65~91之间的随机数,需要在区间两端减去65,区间变为(0-26)再加上65

package com.random;
import java.util.Random;
public class randomDemo1 {
    public static void main(String[] args) {
        //掌握使用random生成随机数
        //1、导包
        //2、创建一个random对象,用于生成随机数
        Random r=new Random();
        for (int i=0;i<20;i++) {
            int data=r.nextInt(10);
            System.out.println(data);
        }
        System.out.println("------------------");
        //将某段代码放到循坏里的快捷办法:
        //nextInt只能生成0~n-1之间的数
        //如何生成指定区间里的随机数(减加法)
        // 生成3~17之间的随机数
        for (int j=0;j<20;j++) {
            int data2= r.nextInt(15)+3;
            System.out.println(data2);
        }


    }
}

(2)猜数字

需求:
随机生成一个1-100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中停止游戏
分析:
1、先随机生成一个1-100之间的数据
2、定义一个死循环让用户可以一直猜测
3、在死循环里,每次都提示用户输入一个猜测的数字,并给予不同的反馈。

package com.random;
import java.util.Random;
import java.util.Scanner;
public class randomDemo2 {
    public static void main(String[] args) {
        //1、先随机生成一个1-100之间的数据
        Random r=new Random();
        int luckyData=r.nextInt(100)+1;
        //2、定义一个死循环让用户可以一直猜测
        Scanner sc=new Scanner(System.in);
        while(true){
            System.out.println("请您输入猜测的数据");
            int guessNumber=sc.nextInt();
            if(guessNumber>luckyData){
                System.out.println("您猜测的值偏大");
            }
            else if(guessNumber<luckyData){
                System.out.println("您猜测的值偏小");
            }
            else{
                System.out.println("猜对了");
                break;
            }
        }
        //3、在死循环里,每次都提示用户输入一个猜测的数字,并给予不同的反馈。

    }
}

该部分结束:20240303

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值