Java中的语句
1.顺序结构
2.选择结构
if语句 switch语句
3.循环结构--重复执行
1.for循环---格式:for(初始条件;判断条件;循环增量/减量){java代码}
初始条件---决定循环的开始
判断条件---决定循环的结束
循环增量/减量---控制初始条件值
执行过程:先执行初始条件,再执行判断条件,判断条件结果为true时,执行{java代码},接下载执行循环增量/减量,接着执行判断条件,判断条件的结果为false时,循环结束。
例如:
public class ForDemo{
public static void main(String[] args) {
for(int i=1;i<=10;i++){
System.out.println("i=="+i);
}
}
}
public class ForDemo{
public static void main(String[] args) {
for(int j=10;j>=1;j--){
System.out.println("j=="+j);
}
}
}
public class ForDemo{
public static void main(String[] args) {
int num=0;
for(int k=1;k<=10;k++){
num=num+k;
}
System.out.println("num=="+num);
}
}
2.while循环--格式wihile(判断条件){java代码【循环增量/减量】}
初始条件---决定循环的开始
判断条件---决定循环的结束
循环增量/减量---控制初始条件值
执行过程:先执行判断条件,判断条件结果为true时,执行java代码,继续执行判断添加,判断条件结果为false时,结束循环。
注意1:初始条件定义在while循坏的格式之外。
注意2:把循环增量/减量的条件写在{java代码...最后一句}
例如:
public class WhileDemo{
public static void main(String[] args) {
//输出1-10的整数
int i=1;
while(i<=10){
System.out.println("i=="+i);
i++;
}
}
}
public class WhileDemo{
public static void main(String[] args) {
//循环输出10-1的整数
int i=10;
while(i>=1){
System.out.println("i=="+i);
i--;
}
}
}
public class WhileDemo{
public static void main(String[] args) {
//计算1-10的整数
int i=1;
int sum=0;
while(i<=10){
sum=sum+i;
i++;
}
System.out.println("sum=="+sum);
}
}
3.do...while循环---格式:do{java代码 【循环增量/减量】}while(判断条件);
初始条件---决定循环的开始
判断条件---决定循环的结束
循环增量/减量---控制初始条件值
执行过程:先执行{java代码},在执行判断条件,判断条件的结果为true时,继续执行{java代码},接着执行判断条件,判断条件的结果为false时,结束循环
注意1:初始条件定义在do...while循环的格式之外。
注意2:把循坏增量/减量的条件写在{java代码...最后一句}
例如:
public class DoWhileDemo{
public static void main(String[] args) {
//循环输出1-10的整数
int i=1;
do{
System.out.println("i=="+i);
i++;
}while(i<=10);
}
}
public class DoWhileDemo{
public static void main(String[] args) {
//循环输出10-1的整数
int i=10;
do{
System.out.println("i=="+i);
i--;
}while(i>=1);
}
}
public class DoWhileDemo{
public static void main(String[] args) {
//计算1-10的整数和
int i=1;
int sum=0;
do{
sum=sum+i;
i++;
}while(i<=10);
System.out.println("sum"+sum);
}
}
比较三个循环的区别?
for循环有定义循环增量/减量具体位置,while和do{}while()循环,没有定义循环增量/减量具体位置,往往都是自己定义在循环体中的最后一句
foe循环需要明确循环次数while和do{}while()循环不需要考虑循环次数
例如:
import java.util.Scanner;
public class whileTest{
public static void main(String args[]){
Scanner input=new Scanner(System.in);
boolean flag=true;
while(flag){
System.out.println("请输入第一个运算数字");
int num1=input.nextInt();
System.out.println("请输入一个运算符号");
String op=input.next() ;
System.out.println("请输第二个运算数字");
int num2=input.nextInt();
switch(op){
case "+":System.out.println(num1+"+"+num2+"="+(num1+num2));break;
case "-":System.out.println(num1+"+"+num2+"="+(num1-num2));break;
case "*":System.out.println(num1+"+"+num2+"="+(num1*num2));break;
case "/":System.out.println(num1+"+"+num2+"="+(num1/num2));break;
case "q":System.out.println("退出程序");flag=false;break;
default:System.out.println("输入有误无法计算");break;
}
}
}
}
while循环与do{}while()循环的区别?
while循环先判断后执行,do{}while()循环先执行后判断
初始判断条件的结果为false的时候,do{}while()循环回避while循环多执行一次循环体。
例如:
public class Test2{
public static void main(String[] args) {
//初始判断条件的结果为false的时候,do{}while()循环会比while循环多执行一次循环体
//do{}while()循环
//while循环
int i=1;
while(i<0){
System.out.println("i=="+i);
}
}
}
4.break语句与continue语句的用法和区别
break语句---循环中就表终端循环的执行,如果循环的嵌套的,那么break语句出现在哪一层就中断哪一次的循环。
switch中表示结束switch的执行。
例如:
public class BreakDemo{
public static void main(String args[]){
for(int i=1;i<=10;i++){
if(i==5){
break;
}
for(int a=1;a<=10;a++){
System.out.println("i=="+i+",a=="+a);
}
}
}
}
continue语句--往往出现在循环中表示结束当前循环,继续下一次循环执行(跳过此次循环)
例如:
public class ContinueDemo{
public static void main(String args[]){
for(int i=1;i<10;i++){
if(i==5){
continue;
}
System.out.println("i=="+i);
}
}
}
Java中的数组
1.什么是数组?
相同数据类型的数据--按照顺序--复合数据类型
2.如何定义一个一维数组?
格式:数据类型 数组名称[] ; /数据类型 []数组名称;
数组的定义与变量的定义相似,只是需要"[]"与变量区分,因此上"[]"就是数组的标志。
名称的前面/后面的出现一个"[]"就是一维数组,有两个"[][]"就是二位数组,两个以上就是多维数组
3.创建一个一维数组?
创建数组的本质就是确定数据的就提存储空间。
格式:
1.先定义,后创建 定义:数据类型 数组名称[];/数据类型 []数组名称;
创建:数组名称=new 数组类型[指定的存储空间];
指定的存储空间的数据值是tin型
2.定义+创建 数据类型 数组名称[]=new 数据类型[指定的存储空间];
数据类型 []数组名称=new 数据类型[指定的存储空间];
例如:
public class ArrayDemo{
public static void main(String args[]){
//先定义,后创建
//定义:数据类型 数组名称[];/数据类型 []数组名称;
int intArray[];//常见的
char []charArray;
//创建:数组名称=new 数据类型[指定的存储空间];
//指定的存储空间的数据值是int型
intArray=new int[4];
charArray=new char[5];
//定义+创建
//数据类型 数组名称[]=new 数据类型[指定的存储空间];
int intArray2[]=new int[4];
//数据类型 []数组名称=new 数据类型[指定的存储空间];
char []charArray2=new char[5];
}
}
4.如何为一维数组赋值?
1.逐个赋值---就是挨个为数组的每一存储空间存放数据值。[需要数组的下标]
数组的下标---因为数组是按照顺序保存数据,此时每一个存储空间就有一个顺序的编号,维持数组顺序的编号就是下标。可以通过下边得到具体时间的数据存储空间。下标从0开始。
第一个存储空间的下边是0,依次类推。
格式:数组名称[下标]=数据值;
注意:当保存在数组中的数据超过数组指定的存储空间就会出错。
java.lang.ArrayIndexOutOfBoundsException:
例如:
public class ArrayDemo{
public static void main(String args[]){
//先定义,后创建
//定义:数据类型 数组名称[];/数据类型 []数组名称;
int intArray[];//常见的
char []charArray;
//创建:数组名称=new 数据类型[指定的存储空间];
//指定的存储空间的数据值是int型
intArray=new int[4];
charArray=new char[5];
//定义+创建
//数据类型 数组名称[]=new 数据类型[指定的存储空间];
int intArray2[]=new int[4];
//数据类型 []数组名称=new 数据类型[指定的存储空间];
char []charArray2=new char[5];
//注意:当保存在数据中的数据超过数组指定的存储空间就是会出错。
//java.lang.ArrayIndexOutOfBoundsException:
}
}
2.直接赋值---就是在创建数组的时候将数据值保存到数组中。
2.1 数据类型 数组名称[]=new 数据类型[]{数据值1,数据值2,.....,数据值n};
创建数组的时候不能指定存储空间
2.2 数据类型 数组名称[]={数据值1,数据值2,.....,数据值n};
例如:
public class ArrayDemo{
public static void main(String args[]){
int intArray[];
intArray=new int[4];
//赋值:逐个赋值---就是挨个为数组的每一个存储空存放数据值。[需要数组下标]
//格式:数组名称[下标]= 数据值;
intArray2[0]=123;
intArray2[1]=789;
intArray2[2]=258;
intArray2[3]=147;
//直接赋值---就是在创建数组的时候将数据值保存到数组中。
//格式:数据类型 数组名称[]=new 数据类型[]{数据值1,数据值2....}
//直接赋值的形式创建数组的时候不能指定存储空间
int arr1[]=new int[]{123,456,789,147};
//数据类型 []数组名称={数据值1,数据值2....数据值n};
char []chararray={'h','e','l','l','o'};
}
}
5.如何从以为数组中取值?
只要我们能够得到数组的存储位置,就可以得到数组中的数据值
格式:数组名称[下标]
例如:
public class ArrayDemo{
public static void main(String args[]){
char []chararray={'h','e','l','l','o'};
//数组取值格式:数组名称[下标]
System.out.println(chararray[3]);
}
}
6.一维数组的length属性
如果数组通过直接赋值的方式创建,那么length属性就表示元素个数。
如果数组通过定义创建的方式创建,那么length属性就表示创建数组是给出的空间大小,与数组的元素个数无关
例如:
public class ArrayDemo{
public static void main(String args[]){
//如果数组通过定义创建的方式创建,那么length属性就表示创建数组是给出的空间大小
//与数组的元素个数无关
double douarray[]=new double[4];
douarray[0]=55.2;
System.out.println(douarray.length);
}
}
7.循环遍历一维数组
例如:
public class ArrayDemo{
public static void main(String args[]){
//循环遍历一维数组
String names[]={"zhangsan","lisi","wangwu","zhaoliu"};
//for循环遍历数组、
//while循环遍历数组
//do..while循环遍历数组
//增强的for循环--jdk1.5新增的内容
//for(数据类型 变量名称:数组){变量名称==数组中的每一个数据值}
for(String name:names){
System.out.println("增强的for循环--"+name);
}
}
}
8.如何定义一个二维数组
格式:数据类型 数组名称[][];
数据类型 [][]数组名称;
例如:
public class ArrayDemo{
public static void main(String args[]){
//如何定义一个二维数据
//格式:数据类型 数组名称[][];
int arrtest1[][];
//数据类型 [][]数组名称;
char [][]chartest;
}
}
9.如何创建一个二维数组?
二维数组可以保存一个类似表格一样的数据,所以我们可以认为二维数组就是一个表格
1.先定义,后创建
数据类型 数组名称[][];
数据类型 [][]数组名称
数组名称=new 数据类型[表格行][行中的列];
2.定义+创建
数据类型 数组名称[][]=new 数据类型[表格行][行中的列];
数据类型 [][]数组名称=new 数据类型[表格行][行中的列];
例如:
public class ArrayDemo{
public static void main(String args[]){
int arrtest1[][];
char [][]chartest;
//如何创建一个二维数组?
//二维数组可以保存一个类似表格一样的数据,所以我们可以认为二维数组就是一个表格
//先定义,后创建
//数据类型 数组名称[][];
//数据类型 [][]数组名称;
//数组名称=new 数据类型[表格行][行中的列]
arrtest1=new int[2][3];
//定义加创建
//数据类型 数组名称[][] = new 数据类型[表格行][行中的列];
//数据类型 [][]数组名称=new 数据类型[表格行][行中的列]
double douarr[][]=new double[2][3];
}
}
10.如何为二维数组赋值?
1.逐个赋值---就是挨个为数组的每一个存储空间存放数据值。
2.直接赋值---就是在创建数组的时候将数据值保存到数组中。
例如:
public class ArrayDemo{
public static void main(String args[]){
int arrtest1[][];
char [][]chartest;
arrtest1=new int[2][3];
double douarr[][]=new double[2][3];
//二维数组赋值---逐个赋值--就是挨个为数组的每一个存储空间存放数据值。
douarr[0][0]=15.5;
douarr[0][1]=20;
douarr[0][2]=50;
douarr[1][0]=26.2;
douarr[1][1]=546;
douarr[1][2]=64.2;
//直接赋值--就是在创建数组的时候将数据值保存到数组中。
//格式:数据类型 数组名称[][]=new 数据类型[][]{{数据值1,数据值2,...数据值n}{数据值1,数据值2,...数据值n}}
// 数据类型 数组名称[][]={{数据值1,,数据值2,...,数据值n},{数据值1,,数据值2,...,数据值n}}
char chharray[][]=new char[][]{{'h','e','l','l','o'},{'w','o','r','l','d'},{'h','e','l','l','o'}};
}
}
12.二维数组的lenght属性---行数
例如:
public class sss{
public static void main(String args[]){
char chharray[][]=new char[][]
{{'h','e','l','l','o'},{'w','o','r','l','d'},
{'h','e','l','l','o'}};
//二维数组的length属性--行数
System.out.println(chharray.length);
}
}
13.循环遍历二维数组---使用双层村换结构,外层控制行,内层控制列
例如:
public class ArrayDemo{
public static void main(String args[]){
char chharray[][]=new char[][]{{'h','e','l','l','o'},{'w','o','r','l','d'},{'h','e','l','l','o'}};
//循环遍历二维数组--使用双层循环结构,外层控制行,每层控制列
//增强for循环
for(char chharra[]:chharray){
for(char value:chharra){
System.out.println("增强--"+value);
}}
}
}
14.认识Arrays类【数组的帮助类】
Arrays类位于java.util包中,主要包含了操纵数组的各种方法
Arrays常用函数(都是静态的)
1.void Array.sort(Object[] array)对数组按照升序排序
2.void Array.sort(Object[] array,int from,int to)对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序)
3.Arrays.fill(Object[] array,Object object)可以为数组元素填充相同的值
4.Arrays.fill(Object[] array,int from,int to,Object object)对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾
5.Arrays.toString(Object[] array)返回数组的字符串形式
import java.util.Arrays;
public class ArrayDemo{
public static void main(String args[]){
//认识Arrays类【数组的帮助类】
//Array类位于java.util包中,主要包含了操纵数组的各种方法
char chartest1[]={'h','e','l','l','o'};
//void Array.sort(Object[] array)对数组按照升序排序
Arrays.sort(chartest1);
for(char value:chartest1){
System.out.println("Arrays---"+value);
}
}
}
15.数组的内存结构



