第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  78tyu
24dg
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");}}
}

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

  1. 流程控制(内含scanner、if语句、switch语句、while和for循环)

    流程控制(内含scanner.if语句.switch语句.while和for循环) 用户交互Scanner 通过引用scanner类获取用户的输入,下面代码可以直接背着用 Scanner scanne ...

  2. JAVA键盘录入 分支结构if swtich语句+循环结构for while语句 练习

    JAVA键盘录入 分支结构if swtich语句+循环结构for while语句 练习 今天学习的三个点,键盘录入 分支结构和循环结构.感觉这些还是得通过实操大量题目后才便于理解,前期只听教师讲解和死 ...

  3. 【零基础 快速学Java】韩顺平 p104-147 流程控制:顺序、分支、循环、跳转 控制语句 (if、for、while、dowhile、break、continue、return)

    课程 p104-147 流程控制介绍 在程序种,程序运行的流程控制决定程序是如何执行的. 主要有三大流程控制语句: 顺序控制 分支控制 循环控制 顺序 简单理解就是从头到尾. 分支控制if-else ...

  4. Java流程控制——用户交互Scanner

    用户交互Scanner Scanner对象 之前的学的基本语法中我们并没有实现程序与人的交互,但是Java给我们提供了这样一个工具类,让我们可以获取用户的输入.Java.util.Scanner 是J ...

  5. python在哪些控制结构中使用else保留字_python的程序控制结构-循环结构与random库使用和圆周率案例--pyt...

    python的程序控制结构-循环结构与random库使用和圆周率案例--pyt python的程序控制结构-循环结构与random库使用和圆周率案例--python-7-days 循环结构 - for ...

  6. c语言条件型循环结构报告,C语言循环结构实习报告 - 副本

    认识(实习)报告 实验(实习)名称循环结构程序设计 日期得分指导教师系专业年级班次姓名学号 一. 实验目的 (1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数. ⑵了 ...

  7. java三种循环结构的关键字,Java循环结构_常量_关键字

    语法格式: int i = 0://初始化值 while(i<10){ //循环判断 ​循环体 循环重复执行的代码 ​循环控制语句 } 解析While循环 初始化条件[定义初始变量.只执行一次] ...

  8. c加加高级语言循环结构,高级C语言循环结构程序设计.ppt

    1,高级语言程序设计,孟宇龙计算机科学与技术学院mengyulong@,2,第5章循环结构程序设计,本章需要掌握的内容掌握3种基本循环.掌握多重循环.掌握continue和break的使用.编写循环结 ...

  9. python中循环结构_python中的循环结构等相关知识

    分支结构 1.单分支:一般用于只会发生一种情况的场景,if #90以上优秀 score=95 if score>90: print("优秀") 2.双分支:一般用于会发生两种 ...

最新文章

  1. 在SQL Server里如何进行页级别的恢复
  2. 小白学数据分析-----留存率分析_I[次日留存率突然下降了50%?]
  3. LeetCode 144. 二叉树的前序遍历(前序遍历)
  4. java 1.8环境变量_java1.8安装及环境变量配置教程
  5. Python 集合 day3
  6. Eclipse中 Clean 的时候总是警告 org.apache.catalina.webresources.Cache backgroundProcess
  7. 计算机专业自我简介50字,2021年个人简历自我评价50字
  8. python爬取豆瓣电影250_python爬取豆瓣电影top250数据存入数据库
  9. 软件开发沉思录读书笔记
  10. [CLR团队公告]CLR基础研究团队:精品系列推广活动启动
  11. 爆笑区块链段子送给你~
  12. 常用小波基函数以及多尺度多分辨率的理解1
  13. 【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现(更新完毕)
  14. 程序员考证,这十大证书含金量最高
  15. ArcEngine导出为PDF中汉字乱码问题
  16. 2021-06-03 JavaGUI 贪吃蛇+图片素材免费
  17. 2000元以下高性价比800万像素相机推荐
  18. 把ListView和GridView与AppBar实现上下联动
  19. 程序员这个身份,比你想象的还值钱
  20. vue+js+海康web开发包接入海康威视摄像头

热门文章

  1. 编php矩阵求和,PHP二维数组如何求和?
  2. 论文浅尝 - AAAI2021 | 从历史中学习:利用时间感知拷贝生成网络建模时态知识图谱...
  3. RuntimeError: Failed to register operator torchvision::_new_empty_tensor_op. +torchtorchversion版本匹配
  4. 阿里内推算法岗位编程笔试题
  5. Android官方开发文档Training系列课程中文版:创建自定义View之View的交互
  6. 企业战略咨询方法:学习SWOT分析
  7. 知识图谱最新权威综述论文解读:实体发现
  8. 解决表单提交的数据丢失问题
  9. 12月25晚-12月29日做的两个网页
  10. python 替换字符串