## 前言
上一章讲到if与else的语法结构运用,
讲述了if与else的一个嵌套,今天讲述
循环。
循环分为三类:for while do..while
所谓循环就是重复不停的事情
要达成循环需要三个条件
就像你在操场跑圈,你在做循环的事情,
那我们开始提出疑问:你怎样判定你跑了
几圈。
三个条件
1.从哪里开始
以什么为起点
2.到哪里结束
以什么为终点
3.跑起来的变化
增减情况
首先定义一个循环变量 i。定义的时候
可以不给它赋初值,在 for 循环里面再
给它赋初值也行。但前面说过,最好在定
义变量的时候就对它进行初始化,如果值
不确定就初始化为 0。所以程序中也可以
在定义 i 的时候就给它赋初值,那么 for
循环里的“表达式1”就可以省略了,但分号
不可以省略。
满足这三个条件,这就是循环。
允许将三个必要条件都写在()内
for(初始值 ; 终点判定条件 ; 变化量 ){
代码;
}
下面用代码写一个循环,重复打印输出一句话
```
public class We{
public static void main (String[] agrs){
for (int i=1;i<10;i++){
System.out.println(i+"你好,Java");
}
}
}
- ## 循环练习1
```
1.鸡兔同笼问题
小鸡 小兔子 关在同一个笼子里 小鸡两只脚 小兔子四只脚
小鸡+小兔子 总数 50只 脚的总数160只
求 小鸡 和 小兔子各多少只。
解: 设 小鸡x只 小兔子 (50-x)
x*2+(50-x)*4 ==160
给计算机一个范围 挨个尝试某一个x满足我们的条件
for(int x=1;x<50;x++){
if(x*2+(50-x)*4 ==160){
System.out.println("小鸡的个数为:"+x);
System.out.println("小兔子个数为:"+(50-x));
}
}
#### - 解析代码如下:
public class DemoTwo{
public static void main(String[] args){
for(int x=1;x<50;x++){
if(x*2+(50-x)*4 ==160){
System.out.println("小鸡的个数为:"+x);
System.out.println("小兔子个数为:"+(50-x));
}
}
}
}
- ## 循环练习2
```
需求 控制台打印*
1.控制台输出一行 **** 随意个数
2.控制台输出4行 **** 每一行个数可以随意输出
#### - 解析代码如下:
import java.util.Scanner;
public class Demo1{
public static void main(String[] args){
//******* 画星星 换行 i==1 4-->7 5-->9
//*** *** 画星星 画空格 画星星 换行 i==2 3 1 3
//** ** 画星星 画空格 画星星 换行 i==3 2 3 2
//* * 画星星 画空格 画星星 换行 i==4 1 5 1
//可读性 健壮性(严谨) 优化(结构 冗余 性能 内存 复用 扩展) 2*i-3
Scanner input = new Scanner(System.in);
System.out.println("请您输入行数:");
int line = input.nextInt();
for(int i=1;i<=line;i++){//控制行数
if(i==1){//第一行规则
//画星星
for(int j=1;j<=2*line-1;j++){
System.out.print("*");
}
}else{//后三行规则
//画星星
for(int j=1;j<=(line+1)-i;j++){
System.out.print("*");
}
//画空格
for(int j=1;j<=2*i-3;j++){
System.out.print(" ");
}
//画星星
for(int j=1;j<=(line+1)-i;j++){
System.out.print("*");
}
}
//换行
System.out.println();
}
}
}
以上就是循环for的讲解与练习;