1、循环结构(for,while,do…while)

初始化语句: 用于表示循环开始的起始状态->循环开始的样子,可以是一条或者多条
条件判断语句:用于表示循环反复执行的条件->判断循环是否可以执行,使用的是结果为true或者false的布尔表达式用于决定是否执行循环体
循环体语句:用于表示循环反复执行的内容 -> 用于循环反复执行,任意语句,这些语句将被反复执行
条件控制语句:用于表示循环执行中每次变化的内容-> 控制循环是否可以执行下去,通常用于一条语句来改变变量的值,从而达到控制语句效果,常见类似i++,i—;

—for循环语句

for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
执行流程: ① 执行初始化语句
② 执行判断语句,如果是true执行,false不执行
③ 执行循环语句
④ 执行条件控制语句
⑤ 返回②条件
循环五次HelloWorld
for(int _i=1; i<5; i++){
System._out
.println();(“HelloWorld”); }
初始化语句i= 1 —> 条件判断 1<5 -->执行循环语句HelloWorld —>
执行 i++条件控制语句i+1 —> 在执行条件判断语句 2<5;

  1. 1. for(;表达式1,表达式2;) 则以条件2为主。 for(a=0,b=0;a<6,b<4;a++,b++) { }
  2. 结果为4。<br /> printf("a = %d,b =%d",a,b);
  3. 2. for(;表达式1 & 表达式2;) 则以先达到条件的表达式为主。
  4. for(a=0,b=0;a<6&b<4;a++,b++) { }<br /> printf("a = %d,b =%d",a,b);<br /> 结果为4
  5. 3. for(;表达式1 | 表达式2;) 则以后达到条件的表达式为主。
  6. for(a=0,b=0;a<6|b<4;a++,b++) { }<br /> printf("a = %d,b =%d",a,b);<br /> 结果为6。<br />实例1:求1-5之间的数据和,并把求和结果输出<br />_int _sum = 0;<br />_for_(_int _i= 0 ; i<5; i++){<br /> sum += i; }<br />System._out_.println(sum); <br />实例2:求1-5之间的数据偶数和,并把求和结果输出<br />_int _sum2=0;<br />_for _(_int _i=0; i <100 ;i++){<br /> _if_(i%2==0){<br /> sum2 +=i; } }<br />System._out_.println(sum2);<br />实例3:输出水仙花数, 水仙花是三位数 111222333370371520999<br />水仙花的个数,十数,百数的立方和等于原数<br />123 1³+2³+3³ = 1+ 8 + 27 =36 123 不是水仙花<br />371 3³+7³+1³= 27+ 343+ 1 = 371 是水仙花<br />水仙花个位数求 371 -- 1<br />371 1是原始数字对10进行取余的结果 371 % 10 = 1<br />水仙花百位数求 371 -- 3<br />371 3是原始数字除以100的结果(整除) 371 / 100 = 3<br /> 水仙花十位数求 371 -- 7<br />371 7是原始数字除以10,将7移动到个位数上 371 / 10 = 37<br /> 然后在将除以10 后的两位数37 10取余 37 % 10 = 7<br /> 371 / 10 % 10 =7<br />总结:任意位数怎么去指定位置上的数值呢<br /> 先使用整除操作将要求的数字移动到个位数上,然后在使用取余取出最后以为上的值<br />例如:123456789 取出5<br />123456789 / 10000 = 12345.6789 因为是整除没有小数点后四位 12345<br />12345 % = 10 10取余数 取个位5<br />代码实现:<br />_for _(_int _i = 100; i <= 999; i++) {<br /> _int _a = i%10;<br /> _int _b = i/10%10;<br /> _int _c = i/100%10;<br /> _if _(a*a*a + b*b*b + c*c*c == i) {<br /> System._out_.println(i); } }<br />案例:统计水仙花数一共多少个,并且输出个数<br />//定义变量count,用于保存水仙花个数。<br />_int _count = 0;<br />_for _(_int _i = 100; i <= 999; i++) {<br /> _int _a = i%10;<br /> _int _b = i/10%10;<br /> _int _c = i/100%10;<br /> _if _(a*a*a + b*b*b + c*c*c == i) {<br /> count ++;<br /> System._out_.println(count); } }

—while循环语句

初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程: ① 执行初始化语句
② 执行判断语句,如果是true执行,false不执行
③ 执行循环语句
④ 执行条件控制语句
⑤ 返回②条件
代码实现:
// 初始化语句_int _i = 0;
_while
(i < 5){
System.out.println(“HelloWorld”);
i++; }
案例:珠穆朗玛最高是8844430毫米,有一张纸得厚度0.1毫米。
折叠多少次可以和珠穆朗玛峰一样?
1.纸张折叠后是原来厚度的两倍 2.每折叠依次记录一次,第二次+1
// 定义一个计算器,初始值为0_int _count =0;
// 定义纸张厚度double _paper = 0.1;
// 定义珠穆朗玛峰高度int _zf = 8844430;
// 因为反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况更适合使用while循环while (paper <= zf){
// 循环执行过程中每次纸张折叠,纸张厚度加倍 paper *= 2 ;
// 在循环中执行累加,对应折叠多少次 _count ++; }
// 打印计数器的值System.out.println(count);

—do…while循环语句

do{
循环体语句;
条件控制语句;
}
while(条件判断语句);
执行流程: ① 执行初始化语句
② 执行循环语句
③ 执行条件控制语句
④ 执行判断语句,如果是true执行,false不执行
⑤ 返回②条件
int _i = 0;
_do
{
System.out.println(“HelloWorld”);
i++;
}while(i<= 5);

2、三种循环的区别

// for循环_for (int _i =3 ; i<3 ; i++){ System._out.println(“HelloWorld”);}
// while循环_int _j = 3;
_while
( j < 3 ){
System.out.println(“HelloWorld”);
j ++; }
// do…while 循环 _int _k = 3;
_do
{
System.out.println(“HelloWorld”);
k ++;
}while(k<3);
代码输出:只有do…while 循环 输出HelloWorld
区别:1.do…while先执行循环体再执行判断语句,其余循环都是先执行判断语句再循环
2.while循环和for循环区别,for初始化定义的值只能再循环体使用,而while定义的初始化的值可以再外部继续使用
3.死循环写法 for(;;){…}; do{…}while(true); while(true){….}; (while死循环常用)

3、跳转控制语句

1、跳过某次循环体内容的执行 continue (基于条件控制的)
2、终止循环体内容的执行 break (基于条件控制的)
3、同一循环体中break和continue不能同时存在
代码实现continue:
// for循环 continue;for (_int _i =1 ; i<=5 ; i++){
_if
((i %2 == 0)){
continue;
}
System._out
.println(i); }
后台输出:1,3,5
if判断i是偶数时 continue 跳过循环下一个
// for循环 break;_for (int _i =1 ; i<=5 ; i++){
_if
((i %2 == 0)){
break; _ }
System.out.println(i); }
后台输出:1
if判断i是偶数时 break 结束循环

4、循环嵌套语句

语句结构:
1、顺序语句: 以分号结尾,表示一句话的结束
2、分支语句: 一对大括号表示if的整体结构,整体描述一个完整的if语句
一对大括号表示switch的整体结构,整体描述一个完整的switch语句
3、循环语句: 一个大括号表示for的整体结构,整体描述一个完整的for语句
一个大括号表示while的整体结构,整体描述一个完整的while瑜伽裤
do…while以分号结尾,整体描述一个完整的do…while语句
任何语句对外都可以看成一句话,分支语句中包含分支语句称为分支嵌套,循环语句中包含循环语句称为循环嵌套
实例:再控制台中输出一天的小时和分钟
分钟: 0<= minute < 60
小时: 0 <= hour < 24
代码实现:
// for循环嵌套 输出一天的小时和分钟
for
(int _hour = 0 ; hour < 24 ; hour++){
_for
(int _minute= 0; minute < 60 ; minute++){
System._out
.println(hour + “时” + minute + “分”); }}

5、Random

1.Random的作用随机产生一个数
2.Random的使用步骤
① 导包
import _java.util.Random;
② 创建对象random
Random random = _new _Random();
③ 获取随机数number获取_random对象添加需要随机获取的范围0~10 包括0不包括10

int _number = random.nextInt(10);
④用循环获取10个随机数
_for
(int _number=0; number < 10; number ++){
number = random.nextInt(10);
System._out
.println(number); }
⑤获取一个1-100之间的随机数
_int _number = random.nextInt(100) + 1;

案例:猜数字

  1. 需求:程序自动生产一个1-100之间的数字,使用程序实现猜数字,当猜错给提示<br /> 1.如果猜的数字大,提示数字偏大<br /> 2.如果猜的数字小,提示数字偏小<br /> 3.如果猜的数字猜对,提示恭喜答对了<br /> 分析:1.首先需要有一个要猜的数字,使用随机数字生成数字,范围1-100<br />Random random = _new _Random();<br /> 2.因为无法预测需要循环几次,可以使用while循环<br />_ while _(...){}<br /> 3. 输入猜测的数字,需要使用键盘录入<br />Scanner scanner = _new _Scanner(System._in_);<br />_int _guessNumber = scanner.nextInt();<br /> 4. 比较输入的数字和系统产生的数据,需要使用分支语句,可以使用if..else..if语句<br /> 可以根据不同情况输出猜测结果,猜中使用break结束<br />_if _(猜的数字大,提示数字偏大){<br /> }_else if _(猜的数字小,提示数字偏小){<br />}_else_{ _break_;}<br />代码实现:<br />_// 创建random对象Random random = _new _Random();<br /> _int _i = random.nextInt(100) + 1;<br />_while _(_true_){<br /> Scanner scanner = _new _Scanner(System._in_);<br /> System._out_.println("请输入你需要的数字:");<br /> _int _guessNumber = scanner.nextInt();<br /> _if _(guessNumber > i){<br /> System._out_.println("数字偏大");<br /> }_else if _(guessNumber <i){<br /> System._out_.println("数字偏小");<br /> }_else_{<br /> System._out_.println("猜中");<br /> _// while(true)是死循环 需要用break结束循环_ break_; } }