java流程控制

本文深入讲解了Java中的流程控制概念,包括使用Scanner类获取用户输入、顺序结构、选择结构(如if、else、switch)、循环结构(如while、do...while、for循环),并详细解释了数组的概念、声明及使用等。
摘要由CSDN通过智能技术生成

Java流程控制

1.用户叫互Scanner

通过Scanner类的next()与nextLine(方法获取输入的字符串,在读取前我们一-般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

基本语法:Scanner s= new Scanner(System.in);

ublic class Demo01 {
    public static void main(String[] args) {
        //创键一个扫描器对象,用于接收键盘数据
        Scanner s = new Scanner(System.in);
        System.out.println("使用next 接收");
        //判断用户有没有输入字符串
        if (s.hasNext()){
            String str=s.next();//程序会等待用户输入完毕
            //用next接收
            System.out.println("输入的内容为:"+str);
        }
        //凡是属于IO流的类不关闭会一直浪费资源,要养好良好的习惯用完就关
        s.close();

2.顺序结构

语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的-种基本算法结构。

3.选择结构

◆if单选择结构

if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}

◆if双选择结构

if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}else{
    //果布尔表达式为false将执行的语句
}

◆if多选择结构

if(布尔表达式1){
    //如果布尔表达式1为true将执行的语句
}else if(布尔表达式2){
     //如果布尔表达式2为true将执行的语句
}else if(布尔表达式3){
     //如果布尔表达式3为true将执行的语句
}else{
    //果布尔表达式为false将执行的语句
}
/*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穿透//switch匹配一个具体的值
        //反编译 java---class(字节码文件)---反编译可以用(IDEA)
          //JDK7的新特性:表达式结果可以是字符串!!
        //字符串的本质还是数字

4.循环架构

while循环

只要布尔表达式为true,循环就会-直执行下去。

少部程序需要一直持续下去比如服务器请求响应

避免死循环

while(布尔表达式){
//循环内容
}
int a=1;//初始化条件
        while (a<=100){//条件判断
            System.out.println(a);//循环体
            a+=2;//迭代

        }
        System.out.println("While循环结束");

do…while循环

do…while循环与while循环非常相似但不同的是do…while至少会执行一次

do{
//代码语句
}while(布尔表达式);

◆While和do-While的区别

while先判断后执行。dowhile是先执行后判断!
◆Do…while总是保证循环体会被至少执行一次!这是他们的主要差别。

fot循环

1.数组概述

数组的定义

◆数组是相同类型数据的有序集合. .
◆数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
◆其中,每- 个数据称作-个数组元素,每个数组元素可以通过-一个下标来访问它们.

2.数组声明创建

数组的四个基本特点

其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
◆其元素必须是相同类型,不允许出现混合类型。
◆数组中的元素可以是任何数据类型,包括基本类型和引用类型。
◆数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,
数组对象本身是在堆中的。

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法

如何创建数组

 int[] a;//首选的方法
 int a[]; // 效果相同,但不是首选方法

◆Java语言使用new操作符来创建数组,语法如下:

a =new int[10]

◆数组的元素是通过索引访问的,数组索引从0开始。

◆获取数组长度

a.1ength

内存分析与初始化

数组越界错误javaJang. ArrayIndexOutOfBoundsException

//静态初始化:创建+赋值
int[] a =4{1,2,3,4,5,6,7,8};
System. out.println(a[e]);
//动态初始化:包含默认初始化
int[] b = new int[10] ;
b[0] = 10;
b[1] = 10;
System. out. println(b[0]);
System. out . print1n(b[1]);
System . out . print1n(b[2]);
System. out. println(b[3]);

数组边界

◆下标的合法区间: [O, length-1],如果越界就会报错;

public static void main(String[] args) {
int[] a=new int [2] ;
System. out. println(a[2]);
}

◆ArrayIndexOutOfBoundsException :数组下标越界异常!

◆小结:

数组是相同数据类型(数据类型可以为任意类型)的有序集合
◆数组也是对象。数组元素相当于对象的成员变量
◆数组长度的确定的,不可变的。如果越界,则报: ArrayIndexOutofBounds

3.数组使用

For-Each循环

 int a[]={10,2,3};
  for (int i : a) {
            System.out.println(i);

4.多维数组

5.Arrays 类

6.稀疏数组

for(初始化;布尔表达式;更新) {
//代码语句
}
    //初始化  //条件判断//迭代



for (int b=0;a<=100;a++){
        System.out.println();
    }
        System.out.println("For循环结束");
for(;;){//死循环代码
};


int[] s= {10, 20, 30, 40, 50,};//定义了一个数组
//遍厉数组的元素
for (int x:s){
            System.out.println(x);

5.break&continue

break在任何循环语句的主体部分,均可用break控制循环的流程。
break用于强行退出循环,不执行循环中剩余的语句。(break 语句也在switch调句中使用)
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

6.练习

99乘法表

 for (int i = 1; i <= 9; i++) {
            for (int i1 = 1; i1 <= i; i1++) {
                System.out.print(i1+"*"+i+"="+(i*i1)+"\t");
            }
            System.out.println("\n");
            //1.先打印第一列
            //2.把固定的1再用循环包起来
            //3去掉重复项 i<=i1
            //4.调整样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值