java语法基础(二)
流程控制语句
表达式语句
在表达式后面添加;就构成了表达式语句,简称“语句” 我们编写java代码,更多时候都是在书写表达式语句。 int i;声明语句 i = 10;赋值语句
流程控制语句
流程控制语句主要实现对代码的执行流程进行选择,循环,转向,返回等控制。按照对代码执行过程中的影响,一般我们把流程控制语句分成三种结构: 顺序结构:程序默认就是从上往下的顺序依次执行代码;就好像按照一条直道开车。 分支结构(选择结构):使得代码按照逻辑情况选择进行执行,就好像遇到了交叉路口。 包括:if语句,if...else语句,switch语句 循环结构:使得代码循环执行,就好像迷路了,绕着环岛一直开,直到想起来。 包括:while循环语句,do...while循环语句,for循环语句
if语句,if...else语句
if语句和if...else语句属于分支结构的流程控制语句。 要求if语句中的表达式都是boolean类型的值。 if 语句: if语句用来判断条件是否满足(真/假),根据判断结果决定是否执行语句。 if语句的代码结构: if(条件表达式){ 执行语句; } 代码执行流程: 1 判断表达式是否成立(true/false) 2 如果表达式成立,执行“执行语句”;否则跳过if语句,按照顺序结构执行if语句下面的代码。 比如判断质数素数 主要事项: 如果执行代码只有一行,可以省略大括号。如果省略大括号,if语句只对它后面的一条语句起作用。哪怕后面跟了空语句。 {}表示局部代码块,表示多条语句的集合。 if...else语句 if...else语句用来判断条件是否满足(真/假),根据判断结果决定执行语句1,还是执行语句2。二选一执行。 if...else语句代码结构: if(条件表达式){ 执行语句1; }else{ 执行语句2; } 代码执行流程: 1 判断表达式是否成立;如果为真,执行“执行语句1”,然后结束if...else语句,按照顺序结构,执行下面的代码 2 如果表达式不成立,执行“执行语句2”,然后结束if...else语句,按照顺序结构,执行下面的代码 if...else语句和?:三元表达式的逻辑很像,那么实际开发中怎么选择: 三元表达式的特点:结构简单;但是在java中整个表达式必须返回一个结果。所以在三元运算表达式中,如果执行语句是println等没有返回结果的语句,会导致编译器报错。 if...else if...else语句: if...else if ...else语句会判断哪个条件满足,然后执行那条语句。属于多选一的执行方式。 if...else if...else语句的代码结构: if(表达式1){ 执行语句1; }else if(表达式2){ 执行语句2; }else if(表达式3){ 执行语句3; } ... else{ else执行语句; } 代码执行流程: 1 判断表达式1是否成立;如果为真,执行“执行语句1”,然后结束if...else if...else语句,按照顺序结构,执行下面的代码。 2 如果表达式1不成立; 判断表达式2是否成立;如果为真,执行“执行语句2”,然后结束if...else if...else语句,按照顺序结构,执行下面的代码。 依次类推; 3 如果所有的表达式都不成立。执行“else执行语句”,然后结束if...else if...else语句,按照顺序结构,执行下面的代码。
switch语句
switch语句属于分支结构的流程控制语句。主要目的是实现多选一操作。 switch语句的代码结构: switch(表达式){ case 值1:执行语句1;break; case 值2:执行语句2;break; case 值3:执行语句3;break; ... default :default执行语句; } switch语句要求: switch表达式的值可以是byte,char,short,int,String。String是从jdk7.0之后开始。 值1,值2,值3,必须是常量 switch没个case语句后面,最好带有break关键字,否则会贯穿执行。 switch语句的代码执行流程: 1先计算表达式的值 2 根据表达式的值,进行匹配值1;如果匹配,执行“执行语句1”,如果后面有break,则跳出switch语句;否则贯穿执行“执行语句2”,“执行语句3”,“default执行语句”; 3 如果值1不匹配,进行匹配值2;如果匹配,执行“执行语句2”,如果后面有break,则跳出switch语句;否则贯穿执行“执行语句3”,“default执行语句”; 4 如果值2不匹配,进行匹配值3;如果匹配,执行“执行语句3”,如果后面有break,则跳出switch语句;否则贯穿执行“default执行语句”; 5 如果所以case值都不匹配,那么执行default语句。根据default语句位置,判断是否贯穿执行。 switch语句的逻辑,也可以使用if else if else语句实现。
while循环
while语句属于循环结构的流程控制语句。主要控制代码的反复执行。 while语句的代码书写格式: while(条件表达式){ 循环执行的语句; } 条件表达式返回一个boolean类型的值。 代码执行流程: 1 判断表达式是否成立,如果成立,执行“循环执行语句”;否则结束while循环 2 如此反复 注意: 如果表达式直接写变量ture,那么代码会一直循环执行“循环执行语句”。属于“死循环”。 在控制台,如果想要结束死循环,需要结束程序运行,ctrl+c 为了是while循环语句可以按照需要只执行有限次循环,我们通常使用变量控制。 int i = 0; while(i<10){ 执行语句; i++; } 如果只有一句循环语句,可以省略大括号。如果省略了大括号,while语句只对下面的一句话起作用,哪怕是空语句。
do...while循环
do...while语句的代码书写格式: do{ 循环执行的语句; }while(条件表达式); 条件表达式返回一个boolean类型的值。 代码执行流程: 1 首先执行“循环执行语句” 2 判断表达式是否成立,如果成立,执行“循环执行语句”;否则结束while循环 3 如此反复 它和while语句的区别: 无论条件是否成立,循环执行的语句总是要执行一次。 更多情况下,我们会使用while循环语句。它更符合我们的逻辑判断习惯。
for循环
for循环语句,属于循环流程控制语句。 代码书写结构: for(初始化语句 ; 判断语句 ; 每次循环后执行的语句){ 循环语句; } 初始化语句:进入for循环以后,首先执行的语句。整个for循环过程中,只执行一次。 判断语句:判断条件是否成立,如果成立,就继续执行for循环;否则结束for循环 每次循环执行完后,执行“每次循环后执行的语句” 代码执行流程: 1 进入for循环,执行“初始化语句” 2 判断“判断语句是否成立”,如果不成立,直接结束for循环 3 如果“判断条件”成立,执行“循环语句”,在执行“每次循环后执行的语句” 4 继续步骤2直到跳出for循环。 注意事项: 1 for( ; ; )是死循环 2 初始化语句可以写在for循环上面 3 每次循环后执行的语句,可以写在循环语句后面。
转移字符
在java中,一些字符有特殊的含义,比如",',\ 等,为了在编程中使用这些特殊的字符,我们需要用转义字符
break,continue关键字
break,结束当前循环;或者防止switch语句贯穿 continue,结束本次循环
函数
函数了解
函数:是为了提高代码的复用性,而把功能单独封装的代码。 比如我们求和2+3,4+5,6+7,如果不使用函数,需要不断创建变量,并且用代码求和。有了函数以后,就可以很容易实现。
函数的代码书写格式
函数的声明 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2, ...){ 需要执行的代码; return 返回值; } 如果希望函数可以执行,必须要调用。 函数的调用 函数名(实际参数1,实际参数2, ...); 修饰符:用来修饰函数的访问权限,静态性等。 返回值类型:函数最终返回的数据的类型。 函数名:函数的名称,用户自己指定,要符合java标识符的规定 形式参数列表:属于函数内的局部变量,用于接受调用方传递过来的参数 实际参数:调用时候,传递的具体数据。 返回值:函数的具体运算结果。
定义函数的步骤
1 首先确定函数执行什么样的功能 2 确定最终希望函数返回的值得类型 3 确定函数需要哪些参数,以及参数的类型 4 给函数起名字,做到见名知意
函数实例1 写一个函数,求两个int类型的整数的和。 写一个函数,求两个int变量中最大的值是多少
void return关键字
如果函数不需要返回值,声明函数的时候,返回值类型可以使用void 当执行到return关键字的时候,整个代码就算执行完毕,不管return后面有没有其他代码。 return关键字的作用: 1 返回结果给调用方。 2 结束函数的执行。
函数的特点
1 通过函数可以对功能代码进行封装 2 能够实现代码的复用 3 函数需要被调用才会执行 4 如果有返回值,直接使用return进行返回;没有返回值,可以使用return后面不加具体的值,也可以不要return语句。
函数的重载
函数重载:如果在一个类中,两个或者两个以上的函数具有相同的函数名称,但是不同的参数个数或者参数类型,我们称之为函数的重载。 重载的意义:为了让函数的调用变得更加灵活方便,优化程序的设计。
重载实例: 写一个函数,求两个相同类型变量的和,可以是int类型,float类型
数组
什么是数组
数组:同一种数据类型的数据的集合。使用数组可以帮助我们方便有序的存储和管理多个相同类型的数据。 特点:使用索引设置或者查询变量的值。
数组的声明方式
动态声明方式: 类型[] 数组变量名 = new 类型[元素的个数]; int[] arr = new int[5]; 静态声明方式: 类型[] 数组变量名 = new 类型[]{元素列表}; int[] arr = new int[]{1,2,3,4,5}; 简单形式: 类型[] 数组变量名 = {元素列表}; int[] arr = {1,2,3,4,5};
数组的内存图
数组在内存中的存在形式,画图表示 数组一旦在内存中创建完毕了以后,长度就不能再发生变化了。
数组的元素访问
数组索引(脚标):数组是有序的,可以通过数组的索尼访问数组的元素。索引是数组中元素的位置编号,从0开始到元素的个数-1。 数组通过索引访问元素的代码格式 数组变量名[索引] 设置/修改对应元素的值 数组变量名[索引] = 常量; arr[1] = 10; 获取元素的值: 数组变量名[索引] println(arr[1]);
数组元素的遍历
依次访问数组中每个元素,我们称为“元素的遍历” 在代码中,我们可以通过循环配合脚标的方式,变量数组中元素。 public static void main(String[] args) { int[] x = { 1, 2, 3 }; System.out.println(x[3]); //java.lang.ArrayIndexOutOfBoundsException }
数组常见问题
1 数组越界 数组的索引是从0到数组元素个数减1;不要让索引超出这个范围 2 空指针异常 在java中除了八种基本数据类型是值类型以外,其他都属于是引用类型。数组属于引用类型,数组对象为null的情况下,不可以访问元素。
数组的排序,查找
数组的排序: 1 冒泡排序 2 选择排序 数组的查找: 二分法查找
选择排序
冒泡排序
Arrays工具类的使用
Arrays是一个类,存在于java.util包中。它有很多类方法,可以帮助我们进行数组对象的处理。 遍历: toString() 将数组的元素以字符串的形式返回 排序: sort() 将数组按照升序排列 查找: binarySearch()在指定数组中查找指定元素,返回元素的索引,如果没有找到返回(-插入点-1) 注意:使用查找的功能的时候,数组一定要先排序。
二维数组
二维数组:二维数组的实质是一维数组 二维数组的声明方式 动态声明: 类型[][] 数组变量名 = new 类型[二维元素个数][一维元素个数]; 静态声明: 类型[][] 数组变量名 = {{元素列表} , {元素列表} , ...}; 二维数组的内存图 二维数组的遍历 使用循环嵌套,配合索引,遍历。 二维数组的求和 遍历求和
java语法基础(二)的更多相关文章
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- Ruby语法基础(二)
Ruby语法基础(二) 继续ruby的学习,这次主要把目光放到运算符,条件判断,循环,方法,以及其他ruby特有的基本概念上 运算符 算术运算符:+,-,/,%,**,值的注意的是,ruby中一切皆为 ...
- R语言语法基础二
R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...
- Java语法基础(二)----运算符
一.运算符: 运算符包括下面几种: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正 ...
- 二:java语法基础:
1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...
- JavaSE 学习笔记之Java语法基础(二)
1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...
- java语法基础(一)
这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...
- JAVA语法基础作业——动手动脑以及课后实验性问题 (八)
一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...
- java语法基础
Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...
随机推荐
- CS academy Growing Trees【模板】DP求树的直径
[题意概述] 给出一棵树,树上的边有两个值a和b,你可以在[0,limit]范围内选择一个整数delta,树上的边的权值为a+b*delta,现在问当delta为多少的时候树的直径最小.最小直径是多少 ...
- 【POJ 2891】Strange Way to Express Integers(一元线性同余方程组求解)
Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express ...
- 实验:iscsi共享存储
实验名称: iscsi共享存储 实验环境: 我们需要准备一个磁盘,对于这个磁盘我们需要使用,将这个磁盘空间共享给iscsi客户端: 实验需求: 我们这里使用两台服务器来实现iscsi共享存储: 1.指 ...
- js如何获取点击<li>标签里的值
- 【ITOO 5】启用MSDTC后的各种问题,以及解决方案
导读:在上篇博客中说到,通过启动微软的msdtc来实现分布式事务处理,随后,问题就来了,现在,一一总结这个过程中的问题. 一.已禁用对分布式事务管理器(MSDTC)的网络访问. 1.1,问题描述 已禁 ...
- 骑士精神 (codevs 2449)
题目描述 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标 ...
- 魔咒词典--hdu1880(字符串 暴力)
http://acm.hdu.edu.cn/showproblem.php?pid=1880 不要想其他的 暴力就能过 #include <iostream> #include < ...
- Spoj 3267 DQUERY - D-query
题目描述 English VietnameseGiven a sequence of n numbers a _{1}1 , a _{2}2 , ..., a _{n}n and a numbe ...
- rror Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnec
在mysql5中,可以设置safe mode,比如在一个更新语句中 UPDATE table_name SET bDeleted=0; 执行时会错误,报: You are using safe upd ...
- java.net.URISyntaxException的解决办法
java.net.URISyntaxException的解决办法 近日在用HttpClient访问抓取汇率时,为了省力,直接采用 String url = "http://api.liqwe ...