当前位置: 首页 > news >正文

Java学习笔记-02

目录

流程控制语句

分支语句

循环语句

Random随机数

数组

方法


流程控制语句

  • 分为顺序语句(从上到下,依次执行),分支语句(if,else...)和循环语句(for,while,do...while)

分支语句

  • 分为if与switch两大类

单分支

if(关系表达式){ 语句体; }

  • 如果表达式成立,则执行语句体。不满足则不会执行语句体
if(true) {System.out.println("只有表达式成立,才会执行里面的");}

双分支

if(关系表达式){ 语句体1; } else { 语句体2; }

  • 如果表达式成立,则执行语句体1。否则则执行语句体2
if(true) {System.out.println("只有表达式成立,才会执行里面的");} else {System.out.println("表达式如果不成立,则执行这里的");}

多分支

if(关系表达式1){ 语句体1; } else if(关系表达式2){ 语句体2; } ... else { 语句体n; }

  • 如果表达式1成立,则执行语句体1。如果表达式2成立,则执行语句体2,...如果表达式都不满足,则执行语句体n
int num = 1;if(num == 1) {System.out.println("1111");} else if(num == 2) {System.out.println("2222");} else if(num == 3) {System.out.println("3333");} else {System.out.println("其他的...");}

分支语句 switch

switch(表达式){

        case 值1:

                语句体1;

                break;

        case 值2:

                语句体2;

                break;

        ......

        default:

                语句体n;

                break;

}

  • 值与表达式做对比,如果匹配上了,则执行对应的语句体。如果都没有匹配到,则执行语句n
int num = 1;switch (num) {case 1:System.out.println("111");break;case 2:System.out.println("222");break;default:System.out.println("没有匹配到");break;}

循环语句

  • 分为for循环,while循环和do...while循环三大类
  • break关键字,会结束循环
  • continue关键字,会跳过当前次循环

for循环

for(初始化语句①;条件判断语句②;条件控制语句③){ 循环语句④; }

  • 适合确定次数的循环
  • ①②④③④③④......,一直到条件不成立,则结束循环
for (int i = 0;i < 10;i++) {System.out.println("这是第" + (i + 1) + "次执行");}
  1. 会先定义一个变量名为i的变量(局部变量),初始值是0
  2. 然后判断变量i是否小于10,小于则执行循环语句
  3. 条件成立(0确实小于10),执行循环语句
  4. 进行自增,变量i为2
  5. 然后再进行条件判断,看变量i是否小于10(2也小于10),小于10则执行循环语句
  6. 重复4和5操作,直到条件不成立,结束循环

while循环

初始化语句;

while(判断条件语句){

        循环体语句;

        条件控制语句;

}

  • 适合不确定次数的循环
int num = 0;while (num < 10) {System.out.println("这是第" + (num + 1) + "次执行");num++;}

do...while循环

do {

        循环体语句;

} while(条件判断语句);

  • 不管条件成立不成立,至少都会执行一次
int num = 0;do{System.out.println("这是第" + (num + 1) + "次执行");num++;} while (num < 10);

break与continue

  • break关键字,会结束循环
  • continue关键字,会跳过当前次循环
for (int i = 0;i < 5;i++) {// 变量 i 为 3 的时候,会跳出当前这次的循环if (i == 3) {continue;}// 变量 i 为 4 的时候,会结束当前循环if (i == 4) {break;}System.out.println("这是第" + (i + 1) + "次执行"); // 输出结果只有1 2 3次}

Random随机数

  • 生成一个0-n之间的随机数,需要用到Random库

使用

  • 导包

import java.util.Random;

  • 创建对象

Random r = new Random();

  • 获取随机数

int num = r.nextInt(10);  // 会生成一个0到10之间的随机数,但是不会取到10

举例

import java.util.Random;
import java.util.Scanner; // 1. 导包public class Main {public static void main(String[] args) {System.out.println("请您输入一个整数数字(需要大于0):");// 获取用户输入,并限制用户只能输入数字型int inputNum  = new Scanner(System.in).nextInt();// 2. 创建Random对象Random r = new Random();// 3. 获取随机数int num = r.nextInt(inputNum);System.out.println("得到的随机数为:" + num);}
}

数组

  • 可以一次性存储大量的数据变量,并且数据变量必须都为同一个数据类型
  • 数组就是一个相同数据变量的集合

数组声明

数据类型  [  ]  变量名                或者        数据类型  变量名 [  ]

int[] arr; // 声明了一个数字型的数组,变量名为arr
int arr2[]; // 声明了一个数字型的数组,变量名为arr2

数组初始化

  • java中的数组必须先初始化,然后才能使用
  • 初始化就是为数组中的每个数组元素分配内存空间,并为每个数组元素赋值
  • 数组初始化分为动态初始化(动态赋值)和静态初始化(静态赋值,给出固定的)

动态初始化

  • 初始化的时候只指定数组长度,由系统为数组动态分配初始值

数据类型 [  ]  变量名 = new 数据类型 [ 数组长度 ];

int[] arr = new int[6];
System.out.println(arr); // 直接打印变量名,会输出内存地址
System.out.println(arr[0]); // 0
System.out.println(arr[1]); // 0

每种数据类型的默认值是不一样的

数据类型默认值
整数int0
浮点型double0.0
布尔型booleanfalse
字符型char空字符 ' '
引用数据类型null

静态初始化

  • 初始化时指定每个数组元素的初始值

数据类型 [  ]  变量名 = new 数据类型 [  ] { 初始值1,初始值2... };   或者

数据类型 [  ]  变量名 = { 初始值1,初始值2... };

int[] arr = new int[] { 1,2,3 };
System.out.println(arr[0]); // 1
// 简写形式,一般都用这种
int[] arr2 = { 1,2,3,4,5 };
System.out.println(arr[2]); // 3

遍历数组

  • 通过for循环进行遍历,数组变量名.length,可以得出数组的长度。
  • 但是小标时从 0 开始的,所以需要小于 数组变量名.length
int[] arr = { 1,2,3,4,5 };
for (int i = 0;i<arr.length;i++) {System.out.println("数组第" + i + "项为:" + arr[i]);
}

方法

  • 方法其实就是函数,先讲解一下简单的函数
  • 要使用方法,必须先声明,再调用
  • 方法里面不能套方法,但是可以调用其他方法

方法声明

public  static  返回值类型  方法名(参数1,参数2...){

        ... // 方法体

}

  • 返回值类型,函数最终返回什么类型,这里就写什么类型。如果没有返回值,则写void
  • 参数格式:数据类型  参数名

方法调用

方法名()       // 这是无参数的

方法名(参数1,参数2...)        // 这是有参数的

  • 方法不调用,自己不会执行
public class Main {// 定义一个没有参数的方法public static void fn() {System.out.println("我没有返回值哦");}// 定义一个有参数的方法public static int getSum(int num1,int num2) {return num1 + num2;}public static void main(String[] args) {// 调用没有参数的方法fn();// 调用有参数的方法int sum = getSum(10,30);System.out.println(sum);}
}

方法重载

  • 重载就是多个方法都具有相同的方法名,并且都在同一个类中,但是方法的参数个数或者类型不相同,这就是方法的重载

注意:同一个类中,是不允许出现方法名称和参数列表都一样的方法,否则会报错

public class Main {public static int getSum(int num1,int num2) {return num1 + num2;}public static int getSum(int num1,int num2,int num3) {return num1 + num2 + num3;}public static void main(String[] args) {int sum = getSum(10,30);System.out.println(sum);int sum2 = getSum(10,20,30);System.out.println(sum2);}
}

输出小提示

System.out.println("表示输入并换行");

System.out.print("表示输入但是不换行");

System.out.println();  // 只是单纯起到一个换行作用

http://www.lryc.cn/news/63778.html

相关文章:

  • 中通快递财报预测:中通快递2023年收入和利润将大幅下降
  • Javaweb | 状态管理:Session、Cookie
  • Redux
  • Nacos配置中心的详解与搭建
  • Java入门教程||Java 封装||Java 接口
  • 微软开源AI修图工具让老照片重现生机
  • 什么是 Docker?它能用来做什么?
  • 生成器的创建方式(py编程)
  • 百胜中国:未来将实现强劲增长
  • 【Celery】任务Failure或一直超时Pending
  • 【严重】VMware Aria Operations for Logs v8.10.2 存在反序列化漏洞(CVE-2023-20864)
  • java实现乘法的方法
  • SSD目标检测
  • SpringBoot项目结构及依赖技术栈
  • crash怎么分析kdump core文件
  • 微内核与宏内核的区别和联系
  • 都什么年代了,还在用Excel和ACCESS做应用系统?快来学Eversheet
  • 【JAVAEE】JAVA数据库连接(JDBC)
  • Nestjs全网最佳翻译-概况-守卫-Guards
  • 【软考网络管理员】2023年软考网管初级常见知识考点(3)- 网络体系结构
  • javascript正则表达式大括号、中括号、小括号的作用以及应用场景
  • 5年测试老鸟总结,自动化测试的实施到落地,看这一篇足够...
  • 通达信顾比倒数线指标公式,信号不漂移
  • 网络安全: CIDR无类别路由
  • NetMQ | 发布订阅时使用含通配符的Topic
  • 行为型模式-模板方法模式
  • IPsec中IKE与ISAKMP过程分析(快速模式-消息1)
  • PostgreSQL 数据类型转换
  • 【Java笔试强训 1】
  • 你买票了吗?五一火车票发售量创历史新高,车票总发售2209万张票