java流程控制(用户交互、顺序结构、循环结构)
Java流程控制
用户交互Scanner
-
Scanner s = new Scanner(System.in);
-
Scanner 类的next()和nextLine()方法获取输入的字符串的区别:
-
next没有拼接字符串的功能,如这里不能写hello world,可以写helloworld
public static void main(String[] args) { //创建一个扫描器,用户键盘接收数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:"); if (scanner.hasNext()){ //获取键盘输入的数据,将数据传给str String str = scanner.next(); System.out.println("输入的内容为:"+str); } //关闭 scanner.close(); }
-
nextLine可以自动拼接字符串,下面的代码不用if语句,因为在实际使用中,可以直接使用,不需要if来判断,科省略
public static void main(String[] args) { //创建一个扫描器,获取键盘输入的值 Scanner scanner = new Scanner(System.in); //将获取到的数据传给str String str = scanner.nextLine(); //输出 System.out.println("你输入的数据是:"+str); scanner.close(); }
-
例子
public static void main(String[] args) { //输入多个数字,显示当前输入了多少个数字、输入数字的总和以及平均数 Scanner scanner = new Scanner(System.in); //总数 double sum= 0 ; //输入数字个数 int i = 0; while (scanner.hasNextDouble()){ double x = scanner.nextDouble(); i =i+1; sum = sum+x; System.out.println("你当前输入的第:"+i+"个数据,当前和结果为:"+sum); } System.out.println(i+"个数的和是:"+sum); System.out.println(i+"个数的平均值是:"+(sum/i)); scanner.close(); }
10
你当前输入的第:1个数据,当前和结果为:10.0
20
你当前输入的第:2个数据,当前和结果为:30.0
30
你当前输入的第:3个数据,当前和结果为:60.0
w
3个数的和是:60.0
3个数的平均值是:20.0
-
顺序结构
- java的基本结构就是顺序结构,除非特别指明,否则就是一句一句的执行
- 是任何算法都离不开的一个基本结构
选择结构
-
if单选择结构:
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入金额,单位万"); String money = scanner.nextLine(); if (money.equals("100")){ System.out.println("支付成功,支付金额为"+money+"万,收购成功"); }else{ System.out.println("支付失败,支付金额为"+money+"万,自己做开发"); } scanner.close(); }
-
if双选择结构:
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int score = scanner.nextInt(); if (score>60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); }
-
多选择结构:一旦其中一个else if语句检测为true,则其他的else if以及else语句都将跳过执行
Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int score = scanner.nextInt(); if (score==100){ System.out.println("恭喜满分"); }else if (score>90){ System.out.println("A级"); }else if (score>80) { System.out.println("B级"); }else if (score>70) { System.out.println("C级"); }else if (score>60) { System.out.println("D级"); }else { System.out.println("不及格"); } scanner.close(); }
-
嵌套if结构:
-
switch多选择结构:jdk7以后,可以接字符串,比如grade ='英俊',case'英俊'
char grade = 'A'; switch (grade){ case 'A': System.out.println("优秀"); break; case 'B': System.out.println("良好"); break; case 'C': System.out.println("及格"); break; case 'D': System.out.println("挂科"); }
循环结构
-
while循环:只要布尔表达式为true,循环就会一直持续下去,尽量避免死循环,例子(计算1-100数相加的和)
public static void main(String[] args) { int i = 0; int sum = 0; while (i<=100){ sum = sum+i; i++; } System.out.println(sum); }
-
do...while循环:
public static void main(String[] args) { int a = 0; while (a<0){ System.out.println(a);//不输出结果 a++; } System.out.println("--------------------------"); do { System.out.println(a);//可以输出a=0,以为do while ,至少会运行一次,不管循环成立与否 a++; }while (a<0); }
-
for循环:是一种最有效、最灵活的循环结构。
public static void main(String[] args) { int a; for (a=0;a<100;a++){ System.out.println(a); } System.out.println("for循环结束"); }
-
for循环嵌套实列:(打印99乘法表)
public static void main(String[] args) { for (int i = 1; i <=9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println(); } }
-
增强for循环
public static void main(String[] args) { int[] number = {10,20,30,40,50}; for (int i = 0;i<5;i++){ System.out.println(number[i]); } System.out.println("+++++++++++++++++++++"); for (int x:number){ System.out.println(x);//下面这个是增强for循环,遍历了一个数组,结果和上面的for循环一样 } }
break continue
-
break 用于强制退出循环,不执行循环中剩余的语句。
-
continue用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着执行下一次循环判定。
-
goto关键字:指从循环中跳出到另一个循环之中来,如下例中,通过给循环命名,然后在continue你想跳到的循环名。
//练习:输出101—151中的所有质数,质数指的是,在大于一的自然数中只存在1和他本身为因素的自然数。 public static void main(String[] args) { int count = 0; out: for (int i=101;i<151;i++){ for (int j=2;j<i/2;j++){ if (i%j == 0){ continue out; } } System.out.println(i+""); } }
for循环例子
-
打印三角形:
public static void main(String[] args) { //打印三角形 for (int i = 1; i <=5; i++) { for (int j=5;j>=i;j-- ){ System.out.print(" "); } for (int j=1;j<=i;j++ ){ System.out.print("*"); } for (int j = 1;j<i;j++){ System.out.print("*"); } System.out.println(); } }
![image-20210720154656762](C:\Users\MKZ Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210720154656762.png)
原文地址:https://www.cnblogs.com/wscn/p/15035414.html
- 零基础学编程034:解决一个pandas问题
- ShellExecute 启动外部程序 参数详细介绍
- 零基础学编程033:字符串的split拆分与join连接
- 零基础学编程032:生成二维码
- C#,一些非常简单但应该知道的知识点
- C#神奇的扩展方法
- 使用Python制作一个简单的刷博器
- 零基础学编程031:Python与其它语言最不同的一条语法规则
- dedecms批量导出新增文章url和标题
- 明理知意:复合索引优化及索引访问原理
- WCF配置文件与文件下载之坎坷路
- 零基础学编程030:像黑客般玩玩字符艺术
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小
- 零基础学编程029:程序员作图不用笔
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- java.io.IOException: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 110
- io.protostuff.runtime.RuntimeUnsafeFieldFactory cannot have the same number
- dubbo 调用报Null 空指针 ,可能并不是真正的空指针
- Hibernate单表操作(四)——组件属性
- Dubbo consumer消费端启动报错java.lang.RuntimeException: [source error] not available in a static method: h
- Groovy小记it关键字和IDE报错
- 05 . Jenkins定制主题和设置项目构建信息输出颜色
- 腾讯云物联网平台使用报告
- 01 . PostgreSQL简介部署
- 01 . Git常用命令及方法和分支管理
- 记一次公司mssql server密码频繁被改的事件
- elasticsearch 同义词更新,不同集群返回更新节点个数不一样
- H5应用加固防破解-js虚拟机保护方案浅谈
- struts2概述
- 移动端适配解决方案