300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JavaSE——流程控制(接收输入Scanner 分支结构(if与switch) 循环结构(while do-while与for))

JavaSE——流程控制(接收输入Scanner 分支结构(if与switch) 循环结构(while do-while与for))

时间:2020-08-20 07:13:33

相关推荐

JavaSE——流程控制(接收输入Scanner 分支结构(if与switch) 循环结构(while do-while与for))

第3节 流程控制

一、接收用户输入

使用Scanner类来接收用户的输入。

新建一个Scanner对象:Scanner input = new Scanner(System.in);

input可以接收各种数据类型的输入:比如nextIntnextByte等,但是这样不太安全,因为如果输入了别的类型的数据,代码就会直接报错;

所以比较常用的是next()nextLine(),它们都返回的是String类型;

其中next会从第一个不为空格的字符开始接收,然后遇到空格或换行符结束接收;

nextLine会接收一整行内容,直到遇到换行符结束接收;

注意不要同时使用nextnextLine,会得不到想要的结果。

import java.util.Scanner;public class input {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入next接收的内容:");String str1 = input.next();System.out.println(str1);}}

结果如下:

请输入next接收的内容:24dg 78tyu24dg

import java.util.Scanner;public class input {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入nextLine接收的内容:");String str2 = input.nextLine();System.out.println(str2);}}

结果如下:

请输入nextLine接收的内容:ud78 56dgy__@#$ !~ud78 56dgy__@#$ !~

二、执行结构

1996 年, 计算机科学家 Bohm 和 Jacopini 证明了: 任何简单或复杂的算法都可以由顺序结构、 分支结构和循环结构这三种基本结构组合而成。它们的共同点是都包含一个入口和一个出口, 它们的每个代码都有机会被执行, 不会出现死循环。

顺序结构:一种基本的控制结构,按照语句出现的顺序执行操作;

分支结构:又称为选择结构,根据条件成立与否来执行操作;

循环结构:一种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止。

三、分支结构

3.1 if条件语句

if 条件结构是根据条件判断之后再做处理

if(条件语句){…}

if (条件语句){…}else{…}

if (条件语句){…}else if(条件语句){…}

if (条件语句){…}else if(条件语句){…}else{…}

例子: 用户输入学生成绩, 判断成绩是否及格, 判断条件为 优良: > 90、 良好: 81-90、 中: 60-80、 不及格: <60

import java.util.Scanner;public class ifelse {public static void main(String[] args) {System.out.println("请输入考试成绩:");Scanner input = new Scanner(System.in);int s = input.nextInt();if(s >= 120 || s < 0) {System.out.println("输入成绩有误!");}else if(s >= 90) {System.out.println("成绩优秀!");}else if(s >= 80) {System.out.println("成绩良好!");}else if(s >= 70) {System.out.println("成绩合格!");}else {System.out.println("成绩不合格!");}}}

3.2 switch语句

switch(表达式){case 取值 1: 语句块 1;break; case 取值 n: 语句块 n;break; default: 语句块 n+1;break; }

switch 语句有关规则

表达式的返回值必须是下述几种类型之一: int, byte, char, short,String;

case 子句中的取值必须是常量, 且所有 case 子句中的取值应是不同的;

default 子句是可选的;

break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块; 如果 case 后面没有写 break 则直接往下面执行!

case 后面的执行体可写{ }也可以不写{ }

例题: 多分支月份输出天数(充分利用语句特性)

import java.util.Scanner;public class switchcase {public static void main(String[] args) {System.out.println("请输入一个月份(1-12):");Scanner input = new Scanner(System.in);String text = input.next();switch (text) {case "1":case "2":case "3":System.out.println("春季");break;case "4":case "5":case "6":System.out.println("夏季");break;case "7":case "8":case "9":System.out.println("秋季");break;case "10":case "11":case "12":System.out.println("冬季");break;default:System.out.println("输入月份有误!");break;}}}

四、循环结构

**循环语句功能 **

    在循环条件满足的情况下, 反复执行特定代码

**循环语句分类 **

for 循环

while 循环

do/while 循环

4.1 while循环语句

符合条件, 循环继续执行; 否则, 循环退出

特点: 先判断, 再执行

语法:

while(条件表达式){//语句块; }

使用 while 循环的步骤

1、 分析循环条件和循环操作

2、 套用 while 语法写出代码

3、 检查循环是否能够退出

实现示例:

录入班级人数和学员成绩, 计算班级学员的平均成绩

import java.util.Scanner;public class whiledemo {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入班级总人数");//使用变量studentNum记录班级总人数int studentNum = input.nextInt();//用于记录循环的次数,以及控制循环何时结束int i = 0;//定义变量sum,用于统计总分数int sum = 0;while(i < studentNum) {i++;System.out.println("请输入第"+i+"个学生的成绩:");int s = input.nextInt();sum += s;}System.out.println("学生的平均成绩为:"+sum/studentNum);}}

4.2 do-while循环语句

先执行一遍循环操作, 符合条件, 循环继续执行; 否则, 循环退出

特点: 先执行, 再判断

语法:

do {//循环操作 }while ( 条件表达式 );

**while 循环和 do-while 循环的区别? **

while:先判断条件, 如果条件满足, 再执行循环操作

do while:先执行一遍循环操作, 然后再判读条件, 如果条件满足, 继续执行循环操作。

4.3 for循环语句

语法:

for(初始化参数; 判断条件; 更新循环变量){//循环体; }

4.4 break与continue

break是用于终止本轮所有次循环,即不执行本次循环中break后面的语句,直接退出循环;

continue是用于终止本轮本次循环,即本次循环中continue后面的代码不执行,进行下一次循环的入口判断。

4.5 如何退出多重循环

在要退出到的地方起个别名,然后break XXX;

public class exit_many_xunhuan {public static void main(String[] args) {haha:for(int i=0;i<10;i++) {for(int j=0;j<10;j++) {System.out.println("i="+i+" , j="+j);if (i==5 && j==5) {break haha;}}}}}

补充:如何判断用户输入类型

import java.util.Scanner;public class panduan_input_leixing {public static void main(String[] args) {System.out.println("请输入一个数字:");Scanner input = new Scanner(System.in);//在接收输入之前判断输入的类型是否为intif(input.hasNextInt()) {int num = input.nextInt();System.out.println("你输入的是:"+num);}else {System.out.println("你输入的类型不是int");}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。