day01-java流程
Scanner对象
基本语法:
Scanner s = new Scanner(System.in);
next()方法
nextLine()方法
顺序结构
选择结构
if单选结构
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
if双选结构
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
//如果布尔表达式为false将执行的语句
}
if多选结构
语法:
if(布尔表达式1){
//如果布尔表达式1的值为true将执行的语句
}else if(布尔表达式2){
//如果布尔表达式2的值为true将执行的语句
}else if(布尔表达式3){
//如果布尔表达式3的值为true将执行的语句
}else{
//如果以上布尔表达式都不为true将执行的语句
}
if 语句至多有 1个else 语,else 语句在所有的 else if 语句之后
if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
语句都将跳过执行。
旦其中一个 else if 语句检测为 true,其他的 else if 以及 else语句都将跳过执行
if嵌套
语法:
if(布尔表达式1){
//如果布尔表达式1为true将执行的语句
if(布尔表达式2){
//如果布尔表达式2为true将执行的语句
}
}
switch多选择结构
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
还有case穿透
循环结构
while循环
语法:
while(布尔表达式){
//循环内容
}
do...while循环
do{
//代码语句
}while(布尔表达式);
for循环
for(初始化; 布尔表达式; 更新迭代){
/代码语句
}
快捷键 :100.for回车
关于 for 循环有以下几点说明:
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为faLse,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(送代因子控制循环变量的增减)。再次检测布尔表达式。循环执行上面的过程。
//printLn 输出完会换行
//print 输出完不会换行
\n
增强for循环
for(声明语句 : 表达式){
//代码句子
}
break continue
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环不执行循环中剩余的语句。(break语句也在switch语句中使用)
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
java方法讲解
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型:方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数
形式参数:在方法被调用时用于接收外界输入的数据
*** 实参***:调用方法时实际传给方法的数据
方法体:方法体包含具体的语句,定义该方法的功能
方法调用
调用方法: 对象名.方法名(实参列表)
Java 支持两种调用方法的方式,根据方法是否返回值来选择
当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger = max(30,40);
如果方法返回值是void,方法调用一定是一条语句
System.out.println("Hello, kuangshen!");
方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数
方法的重载的规则:
方法名称必须相同
参数列表必须不同 (个数不同、或类型不同、参数排列顺序不同等)
方法的返回类型可以相同也可以不相同
仅仅返回类型不同不足以成为方法的重载
实现理论
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
递归
A方法调用B方法,我们很容易理解!
递归就是: A方法调用A方法!就是自己调用自己
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
递归结构包括两个部分
递归头: 什么时候不调用自身方法。如果没有头,将陷入死循环
递归体:什么时候需要调用自身方法
数组
数组是相同类型数据的有序集合
数组描述的是相同类型的若千个数据,按照一定的先后次序排列组合而成
其中每一个数据称作一个数组元素每个数组元素可以通过一个下标来访问它们
创建
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法
dataType[] arrayRefVar; // 首选的方法
dataType arrayRefVar[]; // 效果相同,但不是首选方法
Java语言使用new操作符来创建数组,语法如下
dataType[] arrayRefVar = new dataType[arraySize];
数组的元素是通过索引访问的,数组索引从 0开始
获取数组长度:arrays.length
三种初始化
静态初始化
int[] a = (1,2,3);
Man[] mans = {new Man(1,1),new Man(2,2)};
动态初始化
int[] a = new int[2];
a[0]=1;a[1]=2;
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
数组的基本特点
其长度是确定的。数组一旦被创建,它的大小就是不可以改变的
其元素必须是相同类型,不允许出现混合类型
数组中的元素可以是任何数据类型,包括基本类型和引用类型
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型数组对象本身是在堆中的
- 下标的合法区间: [0,length-1],如果越界就会报错
ArraylndexOutOfBoundsException : 数组下标越界异常!
多维数组
Arrays类
数组的工具类java.util.Arrays
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作
查看JDK帮助文档
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用”而不是“不能”)
具有以下常用功能:
给数组赋值: 通过 fill 方法
对数组排序: 通过 sort 方法,按升序
比较数组: 通过 equals 方法比较数组中元素值是否相等
查找数组元素:通过 binarySearch 方法对排序好的数组进行二分查找法操作
冒泡排序
//冒泡排序
1,比较数组中,两个相邻的元素如果第一个数比第二个数大,我们就交换他们的位置
2.每一次比较,都会产生出一个最大,或者最小的数宁:
3.下一轮则可以少一次排序!
4依次循环,直到结束
public static int[] sort(int[] array){
//临时交量
int temp = 0;
//外层循环,判断我们这个要走多少次;
for (int i = ; i < array.length-1; i++) {
//内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置 for (int j = 0; j < array.length-1-i ; j++) {
if (array[j+1]<array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
稀疏数组
day01-java流程的更多相关文章
- JAVA流程控制
JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){ ...
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- Java流程控制---个人参考资料
前言:我写博客的目的很简单,很单纯,把自己平时学的东西,放到博客上,空闲的时间,就可以看看自己曾经看到过得东西. Java流程控制语句:判断结构.选择结构.循环结构 一.判断结构 判断结构包括if 分 ...
- Java流程控制练习--万年历
Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...
- Java 流程控制
Java 流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...
- JAVA 流程控制之选择语句
在程序设计时,有三种基本技术可以改变程序的流程控制: 调用方法: 选择: 循环. 在这里,我们主要来讲讲选择语句. JAVA中的选择语句与C语言中的基本相同,包括: if 语句: if/else 语句 ...
- 《快乐编程大本营》java语言训练班-第4课:java流程控制
<快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...
- java流程控制语句要点
java流程控制语句要点 一.java7增强后的switch switch语句后面的控制表达式的数据类型只能是byte.short.char.int四种整数类型,不能是boolean类型,java7以 ...
- Java流程控制,for,switch,while.break,continue,return
Java流程控制,for,switch,while.break,continue,return
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
随机推荐
- TensorRT基础笔记
一,概述 TensorRT 是 NVIDIA 官方推出的基于 CUDA 和 cudnn 的高性能深度学习推理加速引擎,能够使深度学习模型在 GPU 上进行低延迟.高吞吐量的部署.采用 C++ 开发,并 ...
- python之路34 MySQL 2 配置文件 字段类型
字符编码与配置文件 1.\s查看MySQL相关信息 当前用户.版本.编码.端口号 MySQL5.6及之前的版本编码需要人为统一 之后的版本已经全部默认统一 如果想要永久修改编码配置 需要操作配置文件 ...
- python31 网络并发编程方法
同步与异步 用来表达任务的提交方式 同步 提交完任务之后原地等待任务的返回结果 期间不做任何事 异步 提交完任务之后不原地等待任务的返回结果 直接去做其他事 有结果自动通知 阻塞与非阻塞 用来表达任务 ...
- linux环境编程(1): 实现一个单元测试框架
写在前面 在开发的过程中,大多数人都需要对代码进行测试.目前对于c/c++项目,可以采用google的gtest框架,除此之外在github上搜索之后可以发现很多其他类似功能的项目.但把别人的轮子直接 ...
- 从0-1超详细教你实现前端读取excel表格并渲染到界面
@ 目录 说明 前提 代码仓库 步骤一:准备工作 步骤二:实现导入表格解析 步骤三:实现表格渲染 结语 本文旨在解决无需调用后端接口,实现前端读取表格文件,获取文件内容,渲染到界面的需求 我的其他文章 ...
- render到底是什么,该如何使用它
一.前言 1.vue程序的运行过程:模板 -> 进行编译 -> 生成ast树 -> 数据绑定 -> 生成render函数 -> 成虚拟dom树 -> 真实dom树 ...
- JVM是如何解决跨代引用问题的?
本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 不知道自己的无知,乃是双倍的无知.--柏拉图 目录 跨代引用问题 记忆集 卡表 写屏障 ...
- JSTL概述和JSTL常用标签if
JSTL概述 1.概念:JavaServlet Pages Tag Library(JSP标准标签库) 是由Apache组织提供的开源的免费的jsp标签 <标签> 2.作用:用于简化和替换 ...
- 导出excel类型转换
Map headmap = new LinkedHashMap<String, String>(); headmap.put("createtime", "日 ...
- Vue17 手机表单数据
1)v-model.trim trim修饰符是去掉前后空格 2)type="number" v-model.number type="number":只能输入数 ...