顺序:程序从上往下执行
选择:程序根据条件选择性执行某些代码
循环:程序根据循环条件重复执行某些代码
Java的键盘输入
import java.util.Scanner
class a{
public static void main (String []args){
Scanner scan =new Scanner(System.in)//新建一个Scanner 对象从键盘接收内容
int i=scan.nextInt();//输入数字
String j = scan.nextLine();//输入字符串 scan.next();也可以接收字符串
System.out.println(i+"\n"+j);
}
}
Java中的选择 ( if-else、switch-case)
if语句的三种格式
if (条件1){条件1成立执行的代码}
if (条件1){条件1成立执行的代码} else{条件1不成立执行的代码}
if (条件1){条件成立执行的代码} else if(条件2){条件2成立执行的代码} else{条件1和条件2都不成立执行的代码}
注:如果有多个if else ,else总是与之最近没匹配过的if 进行匹配。
switch -case结构
int x=1;//变量x=1
switch(x){//x=1表示从 case 1开始执行
case 1:
System.out.println(1);
break;//break跳出循环,如果不写break就会一直往下执行
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default: //default表示若x都不满足case条件就会执行这一句
System.out.println("default");
}
知识点
- break,可以使用再switch中 ,一旦执行到break就会跳出循环。
- switch结构中的表达式,只能是:byte、short、char、int、枚举类型、String。
- default 所有条件不匹配就会执行default中的代码
Java的循环
循环的种类
- for循环
- while循环
- do while循环
for循环
for(条件初始化;条件判断;条件变化){
循环成立执行语句块
}
for(int i=0;i<=100;i++){
System.out.println(i);//循环执行多少次 这句就会输出多少次
}
注意:for循环的条件初始化只会执行一次,若不需要初始化可以不写用;分隔、
int i =0;
for(;i<=100;i++){
System.out.println(i);//
}
while循环
while(循环条件){
条件成立执行语句;
循环条件变化;//若不写循环变化条件,将会是个死循环
}
int i =0;
while(i<8){
System.out.println(i);
i++;
}
do while循环
do{
循环执行代码;
循环条件变化语句;
}while(循环条件)
int i =0;
do{
System.out.println(i);
i++;
}while(i<8)
知识点
- while循环条件变量必须在循环之前定义,且不能定义在循环体内部,不然就会成为死循环。
- while必须要写循环条件变化语句。
- do while 和while的区别在于do while 是先执行循环体代码然后再判断循环是否继续的条件,while是先判断循环条件再执行循环体代码,若条件不满足直接跳出循环。do while 必须执行一次循环体内部的代码。
- 如果想要一个循环无条件执行无数次 直接设置条件为true
whle(true){}
同理for循环也可以死循环for(;;){}
break和continue关键字的使用
相同点:这两个关键字都可以用在循环里。
break代表跳出包裹关键字最近的一层循环。
continue代表跳出本次循环,代码执行到continue这一句后面的代码都不会执行,然后又开始新一轮的循环。
带标签的break 和continue(跳出指定循环)
a:for(;;){//给这个for循环命名为a标签
if(true){
break a;//跳出标签名为a的循环;
}
}
Java数组(Array)
什么是数组:
- 数组本身是引用数据类型,所以数组种的元素可以是任意数据类型,包括基本数据类型和引用数据类型。
- 创建数组对象会在内存中开辟一整块连续的空间,而数组名引用的是这块连续空间的首地址。
- 数组的长度一旦确定,就不能修改。
- 我们可以直接通过下标(或者索引)的方式调用指定位置的元素,速度很快。
数组的分类:
按照维度可以分为:一维数组,二维数组,三维数组…
按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(对象数组)。
一维数组的初始化方法
//方法1 静态初始化
int [] arrey;
arrey = new int []{1,2,3};
//方法2 动态初始化
String [] arrey2 = new String [5];
一维数组的调用方法
int [] arrey;//申明数组
arrey = new int []{1,2,3};//定义数组内容
System.out.println(arrey[0]);//输入数组的第0位内容 结果为1
System.out.println(arrey[1]);//输入数组的第0位内容 结果为2
System.out.println(arrey[2]);//输入数组的第0位内容 结果为3
数组的知识点
- arrey.length方法可以拿到数组的长度
- 数组下标从0开始 如果定义了数组为3 那么下标就是 0,1,2 没有3!!
- for循环遍历数组
for(int i =0;i<arrey.length;i++)
数组默认初始化值
数组在初始化的时候会默认赋值
数组元素整型 int 默认赋值0
数组元素浮点型 float 默认赋值0.0
数组元素char型 char 默认赋值‘\u0000’
数组在内存的简化结构
Java多维数组
什么是多维数组
二维数组的定义
int [] arr = new int[]{1,2,3};//一维数组
int[][] arr2 =new int [][]{{1,2,3},{4,5,6},{7,8,9}};//二维数组静态初始化
String [][] arr3 =new String [3][3]//1.二维数组动态初始化 3*3=9个内存空间
String [][] arr3 =new String [3][]//2.二维数组动态初始化
二维数组的调用
int[][] arr2 =new int [][]{{1,2,3},{4,5,6},{7,8,9}};//二维数组静态初始化
System.out.prinln(arr2[0][0]);//第一行第一列 结果1
System.out.prinln(arr2[1][0]);//第二行第一列 结果4
System.out.prinln(arr2[2][2]);//第三行第三列 结果9
System.out.prinln(arr2[1][2]);//第二行第三列 结果6
二维数组简单来说就是 一维数组的元素又是数组,相当于嵌套循环。
数组的赋值
String [] arr =new String []{"1","2","3"};
String[] arr1 = new String[arr.length];
for(int i =0;i<arr1.length;i++){
arr1[i]=arr[i];
}
数组的反转
String [] arr =new String []{"1","2","3"};
for(int i =0;i<arr.length;i++){
String temp = arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}