Java入门系列-09-循环结构
这篇文章为你搞懂5个问题
- while 循环如何使用
- do-while 循环的使用
- for 循环的使用
- break、continue 的使用
- 循环结构的嵌套使用
生活中有很多事情需要我们重复的去做,比如围着操场跑10圈,比如写了个爬虫需要爬取20个页面,这些都是循环。
while 循环
while 循环是一个先判断后执行的循环,由循环条件和循环操作组成。
语法:
while(循环条件){
循环操作
}
敲一敲:
public class DemoWhile {
public static void main(String[] args) {
int i=0;//定义一个变量
while(i<10) {//循环条件
System.out.println(i);
i++;//更新条件
}
}
}
循环条件为 true 时执行循环操作,为 false 时不执行
上面的代码中的循环条件是i小于10,由于i最开始时为0所以比较结果为true,进入循环,在循环操作中修改变量的值,使条件不断更新,防止死循环,当i的值为10的时,循环条件为 false,这时候循环就结束了。
敲一敲:
/**
* 计算 1-100的和
* @author Jack
*
*/
public class DemoSum {
public static void main(String[] args) {
int sum=0;//定义保存和的变量
int i=1;//要更新的数字
while(i<=100) {//循环1-100
sum+=i;//累加
i++;//更新数字
}
System.out.println("1-100的和:"+sum);
}
}
敲一敲:
import java.util.Scanner;
/**
* 输入y打招呼,输入n结束
* @author Jack
*
*/
public class DemoWhileInput {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("输入y打招呼,输入n结束");
char choose=input.next().charAt(0);
while('y'==choose) {//char类型的比较使用 ==
System.out.println("hello");
System.out.println("输入y打招呼,输入n结束");
choose=input.next().charAt(0);
}
System.out.println("循环结束");
}
}
do-while循环
do-while循环执行的特点是先执行后判断,先执行 do 代码块中的代码,循环条件为 true时继续执行 do 代码块,为 false 时结束循环。
语法:
do{
循环操作
}while(循环条件);
敲一敲:
public class DemoDoWhileSum {
public static void main(String[] args) {
int sum=0;//用于保存求和后的值
int i=1;
do {
sum+=i;
i++;
} while (i<=100);
System.out.println("1-100的和为:"+sum);
}
}
上面 while 循环中的打招呼的代码改用 do-while 更合适,下面的代码会先打招呼,然后询问是否继续,输入y将继续
敲一敲:
import java.util.Scanner;
public class DemoDoWhile {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
char choose=' ';
do {
System.out.println("hello");
System.out.println("输入y继续打招呼,输入n结束");
choose=input.next().charAt(0);
}while(choose=='y');
System.out.println("循环结束");
}
}
for 循环
对于固定次数的循环,使用 for 将更加简洁
语法:
for(参数初始化;条件判断;更新循环变量){
循环操作
}
1.先执行参数初始化
2.然后进行条件判断,如果为 true 执行第3步,为 false 将结束循环
3.执行循环操作
4.更新循环变量,然后再次进入第2步进行条件判断
敲一敲:
public class DemoFor {
public static void main(String[] args) {
//打印1-100的数
for(int i=1;i<=100;i++) {
System.out.println(i);
}
}
}
参数初始化和更新变量可以同时操作多个变量,像 i++,j-- 这样用 , 隔开
import java.util.Scanner;
public class DemoAddTable {
public static void main(String[] args) {
System.out.println("请输入一个值:");
Scanner input=new Scanner(System.in);
int val=input.nextInt();
for(int i=0,j=val;i<=val;i++,j--) {
System.out.println(i+" + "+j+"="+(i+j));
}
}
}
在 for 循环中两个
;不能省略
如果省略循环条件将造成死循环
参数初始化可以省略,但要放在循环的上面,保证变量的可用
更新循环变量可以省略,但要放在循环里面,保证变量的更新不会导致死循环
break 和 continue
break:改变程序控制流程,用于 do-while、while、for、switch,跳出结构执行结构后面的语句。
敲一敲:
import java.util.Scanner;
public class DemoBreak {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
while(true) {
System.out.println("是否继续游戏?输入任意继续,输入no结束:");
String goon=input.next();
if ("no".equals(goon)) {//字符串之间的比较使用 equals
break;
}
}
System.out.println("结束");
}
}
这里的循环条件为 true,也就是一个死循环,但在循环过程中如果输入 no 将执行 break ,那么这个循环也就结束了。
continue:只能用在循环中,跳过循环体中剩余的语句而执行下一次循环。
敲一敲:
import java.util.Scanner;
/**
* 统计年龄大于16的人数
* @author Jack
*
*/
public class DemoContinue {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入学员数量:");
int pnum=input.nextInt();//学员总人数
int num=0;//保存年龄大于16的人数
for(int i=1;i<=pnum;i++) {
System.out.println("请输入第 "+i+" 位学员的年龄:");
int age=input.nextInt();
if (age<17) {
continue;//跳过后面代码,继续下一次循环
}
num++;
}
System.out.println("年龄大于16的人数:"+num);
}
}
循环嵌套
嵌套循环的特点:外层循环执行一次,内层循环执行一遍,各种循环可以任意嵌套,下面使用 for 循环演示打印矩形。
语法:
while(……){
for(……;……;……){
}
}
do{
while(……){
}
}while(……);
for(……;……;……){
do{
}while(……);
}
……
敲一敲:
import java.util.Scanner;
public class DemoRectangle {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("输入要打印的行数:");
int line=input.nextInt();//行数
System.out.println("输入要打印的列数:");
int column=input.nextInt();
//外层循环控制行数,内层循环控制列数
for (int i = 1; i <= line; i++) {
for (int j = 1; j <= column; j++) {
System.out.print("* ");//不换行打印
}
//打印完所有的列后换行
System.out.println();
}
}
}
敲一敲:
/**
* 打印一个三角形
* @author Jack
*
*/
public class DemoDelta {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {//外层循环控制行
for (int j = 1; j <= i; j++) {//内层循环控制列的条件
System.out.print("* ");
}
System.out.println();
}
}
}
打印一个5行的三角形,外层的循环控制行数,所以条件是
i<=5。列和行的条件是什么?第一行1个,第二行2个,第三行3个*,所以条件为j<=i。
试一试
1.使用嵌套循环打印倒三角形
2.使用嵌套循环打印99乘法表
1*1=1
1*2=2 2*2=4
……
1*8=8 2*8=16 ……
1*9=9 2*9=18 …… 9*9=81
鼓励你在留言中发布自己的答案,与其他人一起交流,并在百度上搜索相关问题

扫码关注"享智同行"回复"009"获取答案和解析
Java入门系列-09-循环结构的更多相关文章
- Java入门系列-08-选择结构
这篇文章为你搞懂2个问题 if-else选择结构的使用? switch 的使用? 前面我们学习的代码都是直上直下的执行,还不会"拐弯",这篇文章带大家来看一下会"拐弯&q ...
- 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用
047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...
- 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项
046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...
随机推荐
- 「TJOI2013」循环格
题目链接 戳我 \(Solution\) 我们观察发现循环格要满足每个点的入度都为\(1\) 证明: 我们假设每个点的入读不一定为\(1\),那么必定有一个或多个点的入度为0,那么则不满足循环格的定义 ...
- Java读写配置文件prop.properties
Java读写配置文件prop.properties @Test public void fun() throws IOException{ Properties prop=new Properties ...
- 同一个程序里有多个版本的App
在Xcode中添加多个targets进行版本控制,就是同一个app开发多个版本 以Xcode 9.3 为例 1. 创建 点击左侧工程项目文件,选择TARGETS 下的项目右击选择 Duplicate. ...
- Android手机中怎么样在没root的情况下 修改 hosts 文件
工具 链接:https://pan.baidu.com/s/1AENluDCQ-2qYDPcE5K6l8g 密码:t7eu http://bbs.360.cn/forum.php?mod=view ...
- 在CentOS-6.3环境下,利用grub工具手工制作Linux U盘安装盘
注:此文是本人亲自操作实现后写的心得,同时也是对自己操作的记录. 制作的全过程概况 准备工作: U盘重新分区: 格式化U盘: 安装grub文件到U盘特定的分区: 拷贝镜像中的相关文件到U盘: 安装时设 ...
- [Swift]八大排序算法(二):快速排序
排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...
- ScrollView-电影列表
ScrollView 的使用import React, { Component } from 'react';import { Platform, StyleSheet, Text, View, Sc ...
- 搭建svn管理平台
安装svn服务器:yum -y install subversion 创建svn的目录:mkdir -p /data/svn 初始化svn目录:svnadmin create /data/svn co ...
- Dubbo基础配置
服务启动检查配置 默认check=true dubbo:reference check=“false” 关闭某个服务的启动时检查:(没有提供者时报错) dubbo:consumer check=“ ...
- C++_代码重用1-总览
C++的主要目的是促进代码重用. 公有继承是实现这一目标的机制之一: 本身是另一个类的成员,这种方法称为包含.组合.层次化. 另一种方法是使用私有.保护继承. 通常包含.私有继承和保护继承用于实现ha ...