### 循环的概念
```Java
概念:通过某个条件的控制,使代码重复有规律的执行
对于循环的理解
4000
从第一圈开始 -------------------循环变量的初始化
每跑完一圈(循环体) 加一计数---------------循环变量的改变
第十圈 结束 ----------循环条件的判断
循环的结构
while
语法:
循环变量的初始化;
while(循环条件的判断){
循环体;
循环变量的改变;
}
流程:见图示
循环体执行次数是 0---n
死循环的写法:while(true){}
案例:
public class Demo{
public static void main(String[] args) {
int i=1;
while (true) {
System.out.println("是德国和健康的发给我舒服"+i);
i++;
}
}
}
但是循环条件判断不能直接写成false 但是循环条件结果可以是false
案例:
public class Demo{
public static void main(String[] args) {
int i = 1;
while (i<=10000) {
System.out.println("hello world"+i);
i++;
}
}
}
练习:
用while循环实现跑圈的案例
public class Demo{
public static void main(String[] args) {
int i = 1;
while (i<=10) {
System.out.println("我现在跑的是第"+i+"圈");
i++;
}
}
}
练习: 计算 1+2+3+4+...+100 的和
思路:将循环变量的值加起来 单独定义一个变量存放和
代码:
public class Demo{
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i<=100) {
sum = sum+i;
i++;
}
System.out.println("和是:"+sum);
}
}
练习: 计算 1+3+5+7+。。。+99的和
代码:
public class Demo{
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i<=99) {
sum+=i;
i+=2;
}
System.out.println(sum);
}
}
public class Demo{
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i<=100) {
if (i%2!=0) {
sum+=i;
}
i++;
}
System.out.println(sum);
}
}
do…while
语法:
循环变量的初始化;
do{
循环体;
循环条件的改变;
}while(循环条件的判断);
执行流程:
循环体执行的次数 1---n
死循环:
do{}while(true);
循环条件的判断可以直接是false
1.循环变量的初始化
2.循环体
3.循环条件的改变
4.循环条件的判断
如果为true ----->2循环体---->3---->4
false ---->结束循环
案例:
public class Demo{
public static void main(String[] args) {
int i = 1;
while(true) {
System.out.println("hello world");
i++;
}
}
}
练习: 计算 1+3+5+7+。。。+99的和
public class Demo{
public static void main(String[] args) {
int sum = 0;
int i = 1;
do {
sum+=i;
i+=2;
} while (i<=99);
System.out.println(sum);
}
}
练习:
跑圈案例
for
语法:
for(循环变量的初始化; 循环条件的判断 ;循环变量的改变 ){
循环体;
}
注意:循环变量的初始化语句只执行一次 见图示
循环体执行的次数:0--n
案例:
public class Demo{
public static void main(String[] args) {
for(int i = 1 ;i<=10 ;i++ ){
System.out.println("hello world"+i);
}
}
}
案例:
public class Demo{
public static void main(String[] args) {
for(int i=1 ;i<=10 ;i++ ){
System.out.println("hello world"+i);
}
System.out.println(i);
}
}
案例:
public class Demo{
public static void main(String[] args) {
for(int i = 1 ;i<=10; ){
System.out.println("hello world"+i);
i++;
}
}
}
案例:死循环
循环条件的判断不写true默认也是true
public class Demo{
public static void main(String[] args) {
for( ;true; ){
System.out.println("hello world");
}
}
}
案例: 计算 10 的阶乘(1*2*3...*10)
public class Demo{
public static void main(String[] args) {
int ji = 1;
for(int i = 2;i<=10;i++){
ji*=i;
}
System.out.println(ji);
}
}
总结
应用上:
while循环更适用 未知循环次数的场景
for适用已知循环次数的场景
do while 不常用
循环控制语句
break:结束整个循环
案例:
public class Demo{
public static void main(String[] args) {
for(int i = 1;i<=10;i++){
if (i==3) {
break;
}
System.out.println("160 学的还行");
}
}
}
continue:结束本次循环 继续下次循环
案例:
public class Demo{
public static void main(String[] args) {
for(int i = 1;i<=10;i++){
if (i==3) {
continue;
}
System.out.println("160 学的还行"+i);
}
}
}
循环的嵌套
概念:在一个循环中循环体是另外一个循环
语法:双重循环 for
for(int i = 1;i<=10;i++){
for(int j =1;j<=10;j++){
}
}
执行的流程:
案例:
public class Demo{
public static void main(String[] args) {
for(int i = 1;i<=5;i++){
for(int j = 1;j<=4;j++){
System.out.print("i:"+i+"---"+"j:"+j+"\t");
}
System.out.println();
}
}
}
练习:
打印如图所示的图形
****
****
****
public class Demo{
public static void main(String[] args) {
for(int i = 1;i<=3;i++){
for(int j = 1;j<=4;j++){
System.out.print("*");
}
System.out.println();
}
}
}
案例
*
**
***
****
代码:
public class Demo{
public static void main(String[] args) {
for(int i = 1;i<=4;i++){
for(int j = 1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
j=1 k=1
案例: j<=i-1 k<=5-i;
**** i=1 0个空格 4个*
*** i=2 1个空格 3个*
** i=3 2个空格 2个*
* i=4 3个空格 1个*
思路:
外层循环 int i = 1; i<= 4;i++
代码:
public class Demo{
public static void main(String[] args) {
for(int i = 1;i<=4;i++){
for(int j = 1;j<=i-1;j++){
System.out.print(" ");
}
for(int k = 1;k<=5-i;k++){
System.out.print("*");
}
System.out.println();
}
}
}
练习:
打印 99乘法表 i<=9
1*1 = 1 i = 1
1*2 = 2 2*2 = 4 i = 2
1*3 = 3 2*3 = 6 3*3 = 9 i = 3
案例:
public class Demo{
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+"="+j*i+"\t");
}
System.out.println();
}
}
}
随机数
语法:
Math.random() 就是一个数 这个数 是在0----1之间的一个小数 包括0 但是不包括1
游戏
猜数字游戏:
1.系统随机的产生一个0---99的一个整数 Math.random()
2.游戏有十次机会
3.当猜中屏幕输出 “你中奖了 可以娶媳妇了” 同时结束游戏
4.当猜错 输出 你是个菜鸡 你还有几次机会
5.当机会用完 输出 请投币 再来
6.当用户输入数据为小数的时候 输出 你脑子有泡
代码:
import java.util.*;
public class Demo{
public static void main(String[] args) {
int daAn = (int)(Math.random()*100);
System.out.println("答案是:"+daAn);
Scanner s = new Scanner(System.in);
for(int i = 1;i<=10;i++){
double guess = s.nextDouble();
if ((int)guess==guess) {
if (guess==daAn) {
System.out.println("恭喜中奖了 可以娶媳妇了");
break;
}
else{
System.out.println("菜鸡 你还有"+(10-i)+"次机会");
}
if (i==10) {
System.out.println("请投币 欢迎再来");
}
} else {
System.out.println("非法数据 你脑子有泡");
}
}
}
}