Java流程控制

2021-09-12 04:13

阅读:794

标签:死循环   开始   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


评论


亲,登录后才可以留言!