java笔记10之循环
关于for
循环语句:for循环,while循环,do...while循环。
for循环格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
C:执行循环体语句;
D:执行控制条件语句
E:回到B继续。
注意事项:
A:判断条件语句无论简单还是复杂结果是boolean类型。
B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
C:一般来说:有左大括号就没有分号,有分号就没有左大括号
例子for求和
class ForDemo3 {
public static void main(String[] args) {
//原始做法
System.out.println(1+2+3+4+5+6+7+8+9+10); //定义第一个加数
int sum = 0; for(int x=1; x<=10; x++) {
//这里的x其实是第二个加数
sum = sum + x;
/*
0 + 1 = 1
1 + 2 = 3
3 + 3 = 6
...
*/ //sum += x;
} System.out.println("sum:"+sum);
}
}
练习2
请在控制台输出满足如下条件的五位数
个位等于万位
十位等于千位
个位+十位+千位+万位=百位
分析:
A:五位数就告诉了我们范围。
B:分解每一个五位数的个,十,百,千,万位上的数据
C:按照要求进行判断即可
class ForDemo7 {
public static void main(String[] args) {
//五位数就告诉了我们范围。
for(int x=10000; x<100000; x++) {
//分解每一个五位数的个,十,百,千,万位上的数据
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
int qian = x/10/10/10%10;
int wan = x/10/10/10/10%10; //按照要求进行判断即可
if((ge==wan) && (shi==qian) && (ge+shi+qian+wan==bai)) {
System.out.println(x);
}
}
}
}
例子3 水仙花
/*
需求:统计”水仙花数”共有多少个 分析:
A:首先必须知道什么是水仙花数
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
B:定义统计变量,初始化值是0
C:三位数告诉了我们范围,用for循环就可以搞定
D:获取每一个三位数的个,十,百的数据
E:按照要求进行判断
F:如果满足要求就计数。
*/
class ForDemo8 {
public static void main(String[] args) {
//定义统计变量,初始化值是0
int count = 0; //三位数告诉了我们范围,用for循环就可以搞定
for(int x=100; x<1000; x++) {
//获取每一个三位数的个,十,百的数据
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10; //按照要求进行判断
if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
//如果满足要求就计数。
count++;
}
} System.out.println("水仙花数共有"+count+"个");
}
}
关于while
while循环的基本格式:
while(判断条件语句) {
循环体语句;
}
扩展格式:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
通过这个格式,我们就可以看到其实和for循环是差不多的。
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
关于do。。。。while
do...while循环的基本格式:
do {
循环体语句;
}while(判断条件语句);
扩展格式;
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
注意死循环:
A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
B:两种最简单的死循环格式
while(true){...}
for(;;){...}
关于循环嵌套
例子1
/*
需求:请输出一个4行5列的星星(*)图案。
结果:
*****
*****
*****
***** 循环嵌套:就是循环语句的循环体本身是一个循环语句。 通过结果我们知道这样的一个结论:
外循环控制行数
内循环控制列数
*/
class ForForDemo {
public static void main(String[] args) {
//原始做法
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("-------------"); //虽然可以完成需求,但是不是很好
//如果是多行多列就会比较麻烦
//所以我们准备改进
//如何改进呢?
//我先考虑如何实现一行*的问题
//System.out.println("*****");
//我们要想的是如何实现一次输出一颗*的问题
//System.out.println("*");
//System.out.println("*");
//现在虽然可以一次一颗*,但是却换行了,我要求不能换行,怎么办呢?
//输出语句的另一种格式:System.out.print(); 这个是不带换行的
//System.out.print("*");
//System.out.print("*");
//System.out.print("*");
//System.out.print("*");
//System.out.print("*");
//如果我要在一行上打出多颗*,比较麻烦,而代码是重复的,所以我决定用循环改进
for(int x=0; x<5; x++) {
System.out.print("*");
}
//我们可以通过空的输出语句实现换行:System.out.println();
System.out.println(); //既然我可以打出一行,我就可以打出第二行
for(int x=0; x<5; x++) {
System.out.print("*");
}
//我们可以通过空的输出语句实现换行:System.out.println();
System.out.println(); //同理打出第三行,第四行
for(int x=0; x<5; x++) {
System.out.print("*");
}
//我们可以通过空的输出语句实现换行:System.out.println();
System.out.println(); //既然我可以打出一行,我就可以打出第二行
for(int x=0; x<5; x++) {
System.out.print("*");
}
//我们可以通过空的输出语句实现换行:System.out.println();
System.out.println();
System.out.println("-----------------");
//同样的代码出现了4次,说明我们程序写的不好,用循环改进
for(int y=0; y<4; y++) {
for(int x=0; x<5; x++) {
System.out.print("*");
}
//我们可以通过空的输出语句实现换行:System.out.println();
System.out.println();
}
}
}
例子2 99乘法表
class ForForDemo3 {
public static void main(String[] args) {
for(int x=0; x<9; x++) {
for(int y=0; y<=x; y++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("--------------");
//为了使用数据,我们从1开始
for(int x=1; x<=9; x++) {
for(int y=1; y<=x; y++) {
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
}
关于跳转语句
控制跳转语句:
break:中断
continue:继续 跳出一次循环,进入下一次的执行
return:返回 其实它的作用不是结束循环的,而是结束方法的
break:中断的意思
使用场景:
A:switch语句中
B:循环语句中。
(循环语句中加入了if判断的情况)
注意:离开上面的两个场景,无意义。
如何使用呢?
A:跳出单层循环
B:跳出多层循环
要想实现这个效果,就必须知道一个东西。带标签的语句。
格式:
标签名: 语句
例子1
class ContinueDemo {
public static void main(String[] args) {
for(int x=0; x<10; x++) {
if(x == 3) {
//break;
continue;
} System.out.println(x);
}
}
}
例子2
class ReturnDemo {
public static void main(String[] args) {
for(int x=0; x<10; x++) {
if(x == 2) {
System.out.println("退出");
//break;
//continue;
return;
} System.out.println(x);
} System.out.println("over");
}
}
java笔记10之循环的更多相关文章
- Java笔记3-for,switch循环,格式化输出,随机数
大纲:一.分支结构 if switch二.循环 for while do while break continue三.格式化输出 [printf] int score = 100; String na ...
- Java笔记4-do while循环,break,修饰符,方法的调用
do while循环语法:do{ //循环体}while(条件表达式); 注:它是先执行循环体,后再判断的循环结构. 如:int i = 0;do{ System.out.println(" ...
- Java笔记10:Struts2简单Demo
1 下载struts-2.3.24.1-all.zip并解压缩,位置任意,比如我的位置是D:\Download\Java\struts-2.3.24.1 解压缩D:\Download\Java\str ...
- Thinking in Java——笔记(10)
Inner Classes It allows you to group classes that logically belong together and to control the visib ...
- Java笔记——循环语句
Java笔记--循环语句 1. while语句 规律: 1. 首先计算表达式的值. 2. 若表达式为真,则执行循环语法,直至表达式为假,循环结束. while(表达式) 语句; 例如: i ...
- Java学习笔记13---一个循环程序的设计范例
package welcome; import java.util.Scanner; /* * 一个循环程序的设计范例 * 首先编写仅执行一次的程序(当无循环时) * 循环的设计步骤: * 1.确定程 ...
- JAVA自学笔记10
JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...
- 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
随机推荐
- ViewPager滑动特效实现
ewPager最常用于结合Fragment,这是一个方便的方式来供应和管理每个页面的生命周期. MainAcitivity的代码 import java.util.ArrayList; import ...
- GridView的初级使用
使用GridView自带的分页功能,需要激发PageIndexChanging protected void gvNewsList_PageIndexChanging(object sender, G ...
- C# Word常用操作(转)格式设置
一.word文档表格操作.分页及换行 //合并单元格table.Cell(2, 2).Merge(table.Cell(2, 3)); //单元格分离 object Rownum = 2;object ...
- Scene is unreachable due to lack of entry points and does not have an identifier for runtime access
使用Storyboard时出现以下警告: warning: Unsupported Configuration: Scene is unreachable due to lack of entry p ...
- c#求slope线性回归斜率
public class mySlope { // public List<double> Values { get; set; } public double SlopeResult { ...
- idea sass scss配置
1.安装Ruby win 直接http://rj.baidu.com/soft/detail/22711.html?ald mac linux https://ruby.taobao.org/ 可下 ...
- 用core dump来调试程序段错误
有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来 ...
- text-overflow:ellipsis 的应用(转载)
关键字: text-overflow:ellipsis 语法:text-overflow : clip | ellipsis 取值: clip :默认值 .不显示省略标记(...),而是简单的裁切. ...
- [Python笔记]第二篇:运算符、基本数据类型
本篇主要内容有:运算符 基本数据类型等 一.运算符 1.算术运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 6.身份运算 7.位运算 8.运算符优先级 二.基本数据类型 1.整数:int ...
- mongodb教程二
MongoDB 创建数据库: MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 如果你想查看所有数据库,可以使用 ...