码迷,mamicode.com
首页 > 编程语言 > 详细

Java流程控制

时间:2021-06-19 18:56:02      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:死循环   开始   loading   提示   inf   结果   表达   必须   习惯   

Java流程控制

用户交互Scanner

? 我们可以通过Scanner类来获取用户的输入

Scanner的使用

语法:

Scanner s =new Scanner(System.in);

? 通过Scanner类的next()nextline()来获取输入的字符串,在读取数据前一半用hasNext()hasNextLine()判断是否还有输入的数据

? 在使用Scanner类前,需导入Scanner类

	import java.util.Scanner
	Scanner scanner = new Scanner(System.in);//创建一个扫描器对象用于接收键盘数据
	System.out.println("使用next方法接收");//用于提示用户输入数据
	String a =scanner.next();//定义一个字符串a来接收用户输入数据
	//在输入数据前,程序不会停止,而是会在这里等待用户输入完毕
	System.out.println("输入的内容为"+a);//在这里输出用户输入的内容
	scanner.close();//凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用好就关

技术图片

技术图片


Scanner对象

  • next()

    • 一定要读取到有效字符才能结束输入

    • 对输入有效字符遇到的空白,next()方法会自动将其去掉

    • 只有输入有效字符后才能将后面输入的空白作为分隔符或结束符

    • next()不能得到带有空格的字符串

技术图片

  • nextLine()

    • 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符

    • 使用nextLine()方法可以获得空白

技术图片

技术图片


Scanner的进阶使用

? Scanner类下还有许多输入方法,如nextInt()、nextDouble()

? 利用这些方法,可以输入用户的各种数据

Scanner a =new Scanner(System.in);//定义一个扫描器,用于接收用户输入数据
        int m =0;//定义一个int数,用于计算接收多少个数据
        double c = 0.0;//定义一个double数,用于计算接收数据的总和
        while(a.hasNextDouble()){//用于接收用户输入的数字数据
            m++;//每输入一个数据,数据个数+1
            double b = a.nextDouble();//定义一个变量,用于收集用户输入数据
            System.out.println("你已输入"+m+"个数据");//用于提示输入的数据个数
            c+=b;//用于计算接收数据总和
            System.out.println("总数为"+c);//输出当前接收数据总和
            System.out.println("平均数为"+c/m);//输出当前接收数据的平均数
        }
        System.out.println("程序结束");//一旦输入数字以外的数据,用于提示用户程序停止
        a.close();//关闭IO流,节省资源

技术图片

结构

顺序结构

? Java最基本的结构就是顺序结构,除非特别指明,否则将按照顺序一句一句执行

技术图片

技术图片

它是任何一个算法都离不开的一种基本算法结构

选择结构

if单选择结构

语法:

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

技术图片

技术图片


if双选择结构

语法:

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

技术图片

技术图片


if多选择结构

语法:

	if(布尔表达式1){
        //布尔表达式1的值为true,则执行该语句
    }else if(布尔表达式2){
        //布尔表达式2的值为true,则执行该语句
    }else if(布尔表达式3){
        //布尔表达式3的值为true,则执行该语句
    }else{
        //如果以上布尔表达式的值都不为true,则执行该语句
    }

技术图片

技术图片


嵌套的if结构

语法:

	if(布尔表达式1){
        //如果布尔表达式的值为true,则执行该语句
        if(布尔表达式2){
            //如果布尔表达式的值为true,则执行该语句
        }
    }

switch多选择结构

? switch case语句判断一个变量与一系列值中某个值是否相等,每一个值都是一个分支

? 语法:

	switch(表达式){
        case value1://如果为值1,则执行该语句
            //语句
            break;//用于结束循环,可选
        case value2://如果为值2 ,则执行该语句
            //语句
            break;//结束循环,可选
        default://若以上值都没有,则执行该语句,可选
            //语句
    }

? switch语句中的变量类型可以是:

  • byte、short、int或者char
  • 从Java SE7开始,switch支持字符串string类型
  • case标签必须为字符串常量或字面量

技术图片

技术图片

注意:

  • case语句具有穿透性,如果没有break语句结束循环,在case语句匹配到相应的值后,会将接下来的没有break语句的case语句输出,直到有break语句的case语句

技术图片

技术图片

技术图片

循环结构

while循环

? while循环时最基本的循环

语法:

	while(布尔表达式){
        //循环内容
    }

注意:

  • 只要布尔表达式的值为true,循环就会一直执行下去
  • 大多数情况下,我们会让循环停止下来,因此需要一个让表达式值为false的方式来结束循环
  • 少数情况下需要循环一直执行,如检查服务器是否响应
  • 循环条件一直为true则会造成死循环,一般应避免死循环,导致程序卡死崩溃

do...while循环

? do...while循环与while循环相似,不同的是,do...while训话至少会执行一次

语法:

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

do...while和while的区别:

  • while先判断后执行,do...while先执行后判断
  • do...while总是保证循环体至少被执行一次,这是他们的主要差别

For循环

? for循环语句是支持迭代的一种通用结构,**是最有效、最灵活的循环结构

语法:

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

? for循环中的语句可以是空语句

	for(;;){//这是一个死循环
        
    }

增强for循环

? 主要用于数组或集合

语法:

	for(声明语句:表达式){
        //代码语句
    }
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,作用域限定在循环语句块,其值与此时数组元素的值相等
  • 表达式:表达式时要访问的数组名,或者是返回值为数组的方法

技术图片

)

break&continue

? break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强制退出循环,不执行循环中剩余的语句

技术图片

技术图片

? continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

技术图片

技术图片

?

Java流程控制

标签:死循环   开始   loading   提示   inf   结果   表达   必须   习惯   

原文地址:https://www.cnblogs.com/chenxiaoyuharuki/p/14901600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!