1、流程控制的三种结构
- 顺序结构
- 分支结构
- 循环结构
2、顺序结构
- 顺序结构就是程序从上到下一行一行的执行,中间没有任何判断和跳转
- 如果main方法多行代码之间没有任何流程控制
,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行
3、分支结构
- 单/双分支结构:if-else语句
- 多分支结构:switch语句
- 举例
- 单条件
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("输入判断条件:");
boolean judge = scan.nextBoolean();
if(judge){
System.out.println("正确");
}
}
}
- 双条件
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("输入判断条件:");
boolean judge = scan.nextBoolean();
if(judge){
System.out.println("正确");
}
else{
System.out.println("错误");
}
}
}
- 多条件
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String condition = scan.nextLine();
switch(condition){
case "A":
System.out.println("score between 100 and 90");
break;
case "B":
System.out.println("score between 90 and 80");
break;
default:
System.out.println("no score");
break;
}
}
}
4、if-else语句常见错误
- 如果if、else、else if后的执行体只有一行语句时,友友们想偷懒的话,可以省略花括号,但是最好不要省略,因为花括号会有更好的可读性,还可以减少发生错误的可能。
- 对于任何的if else语句,else本身就是一个条件
5、循环结构
- while循环语句
-while循环的用法:
public class Test {
public static void main(String[] args){
int i = 1;
int sum = 0;
while(i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
- do while循环语句
-举例
public class Test {
public static void main(String[] args) {
int i = 1;
int sum = 0;
do
{
sum = sum + i;
i++;
}while(i <= 100);
System.out.println(sum);
}
}
- for循环语句
-举例
public class Test {
public static void main(String[] args) {
int i = 1;
int sum = 0;
for(;i<=100;i++)
{
sum = sum + i;
}
System.out.println(sum);
}
}
6、break关键字:用于从一个循环中跳出
7、break+标签:可以从嵌套循环中跳出(java中标签就是标识符,它必须放在循环语句之前才有作用)
- 举例
public class Test {
public static void main(String[] args){
outer:
for(var i=0;i<5;i++){
for(var j=0;j<5;j++){
System.out.println("i="+i+"\tj="+j);
if(j==2){
break outer;
}
}
}
System.out.println("break!!!");
}
}
8、continue用于中止本次循环,从 下一次循环继续执行
- 举例1:continue中止本次循环
public class Test {
public static void main(String[] args){
for(var i=0;i<3;i++){
System.out.println("i="+i);
if(i==1){
continue;
}
System.out.println("no continue");
}
}
}
- 举例2:continue加标识符中止本个循环语句
public class Test {
public static void main(String[] args){
outer:
for(var i=0;i<5;i++){
for(var j=0;j<3;j++){
System.out.println("i="+i+"\tj="+j);
if(j==1){
continue outer;
}
}
System.out.println("continue!!!");
}
}
}
- 举例3:return中止所有循环
public class Test {
public static void main(String[] args){
for(var i=0;i<5;i++){
System.out.println("i="+i);
if(i==2){
return;
}
System.out.println("return!!!");
}
}
}
9、一维数组
- java的数组:
-定义方式1:Type[] a={a_1,…,a_n};
-定义方式2:Type[] a=new Type[]{a_1,…,a_n};
-定义方式3:Type[] a=new Type[n]; - java的数组:所有元素具有相同的数据类型
- java的数组:长度固定,不可改变(一旦数组的初始化完成,数组在内存中所占的空间将被固定下来。)
- java的数组:既可以存储基本数据类型,也可以存储引用类型的数据。
- java的数组:是一种数据类型,它本身是一种引用类型
10、使用数组
- 对于一个java数组:int[] arr=new int[3];
- java语言的数组索引是从0开始,数组长度为arr.length,因此最后一个数组元素的索引为arr.length-1
- 访问越界的元素时,会抛出ArrayIndexOutOfBoundsException异常
- 访问数组元素:arr[0],arr[1],arr[2];
- 修改数组元素的值:arr[0]=1;
- 遍历数组元素:三种循环结构均可
- java还提供了foreach语法(for(int e:arr){…})用于遍历数组
- 举例
public class Test {
public static void main(String[] args){
//初始化赋值
int[] test1={1,2,3};
int[] test2=new int[]{1,2,3};
int[] test3=new int[3];
//for循环遍历
System.out.println("for循环遍历数组:");
for(var i=0;i<test1.length;i++){
System.out.print(test1[i]+" ");
}
System.out.println("");
for(var j=0;j<test2.length;j++){
System.out.print(test2[j]+" ");
}
System.out.println("");
for(var k=0;k<test3.length;k++){
System.out.print(test3[k]+" ");
}
System.out.println();
System.out.println("foreach循环遍历数组:");
for(var i:test1){
System.out.print(i+" ");
}
System.out.println("");
for(var j : test2){
System.out.print(j+" ");
}
System.out.println("");
for(var k : test3){
System.out.print(k+" ");
}
}
}
11、多维数组
- 定义方式1:Type[][] arrName=new Type[m][n];(最后一维的长度可以不写,这时必须显示初始化)
- 定义方式2:Type[][] arrName={{a_11,…,a_1n},{a_m1,…,a_mn}};
- 定义方式3:Type[][] arrName=new Tyype[][]={{a_11,…,a_1n},{a_m1,…,a_mn}};
- 举例
public class Test {
public static void main(String[] args){
int[][] test1={{1,2},{3,4,5},{6,7,8,9}};
int[][] test2=new int[3][4];
int[][] test3=new int[][] {{1,2},{3,4,5},{9,7,8,9}};
for(var i=0;i<test1.length;i++){
for(var j=0;j<test1[i].length;j++){
System.out.print(test1[i][j]+" ");
}
System.out.println();
}
System.out.println();
for(var i : test2){
for(var j : i){
System.out.print(j+" ");
}
System.out.println();
}
}
}