循环语句与练习

循环


1.什么是循环

三要素:起点,循环体,截止

2.怎么去循环

3.java中的循环语法

a.while循环

实现:

b.do-while循环

while循环和do-while循环的区别和联系:
  1. while:当判断条件不满足的时候,一次也不执行;while循环的执行次数是0-n;

  1. do-while:当判断条件不满足时,至少执行一次;do-while的循环范围是1-n

c.for循环(foreach)
执行顺序
注意的地方

d.循环嵌套

内层循环循环一轮,外层循环循环一次

简易三层之内

一个固定代码:

时分秒计时:

e.两个关键字
  1. 跳过本次循环:continue,跳过本次循环,后置内容不再执行,前置内容仍然会执行。

  1. 跳出(终止)循环:break,终止循环,后续的所有次数的循环都不再执行。在调用break之前的依然正常执行,在调用break之后的,以及后续的所有轮,都结束。

画星星

正方形

思路:

  1. 先画一行,这一行是依次打印5个星星

  1. 一行打印完毕之后要换行

  1. 准备外层循环,意味着打印多少行

直角三角形

思路:

  1. 和正方形一样,同样是分为一行多少个星星,总共若干行

  1. 内层的循环上限和外层的循环当前次数有关

或者:

倒直角三角形

思路:

  1. 在正直角的基础上,内层是倒序循环/也可以是增序,因为是数量越来越少

  1. 其他的和正直角一样

或者:

反直角三角形

思路:

  1. 和正直角基本一致

  1. 每一行依然是五个符号,只不过是由空格和星星组合构成,是空格加星星的总和

  1. 最后一行,可以看出是0个空格+5个星星

或者:

杨辉三角

思路:

  1. 在正直角三角形的基础上

  1. 每一行的公式为:2a+1

或者:

一个小练习:

做一个简化版的体育彩票

规则:3+1,前3位,不看顺序,中1个10元,中2个100元,中3个1000元,最后一个看顺序,全中100000元

packagecom.qf.circulate;

importjava.util.Random;

importjava.util.Scanner;

publicclassBodyColor {

publicstaticvoidmain(String[] args) {

//模拟一个体彩

//3+1

//生成随机数:new Random().nextInt()

Scannerscan=newScanner(System.in);

//生成奖池

while(true) {

System.out.println("欢迎使用割韭菜彩票系统!");

//生成第一个

intnum1=newRandom().nextInt(100);

//生成第二个

intnum2 =0;

while(true) {

num2=newRandom().nextInt(100);

//判断生成的第一个值和第二个是否相同,若不相同则跳出此循环

if(num2!=num1) {

break;

}

}

//生成第三个

intnum3=0;

while(true) {

num3=newRandom().nextInt(100);

//判断生成的第三个值和第一、二个是否相同,若不相同则跳出此循环

if(num3!=num1

&&num3!=num2) {

break;

}

}

//生成第四个

intnum4=0;

while(true) {

num4=newRandom().nextInt(100);

//判断生成的第四个值和第一、二、三个是否相同,若不相同则跳出此循环

if(num4!=num1

&&num4!=num2

&&num4!=num3) {

break;

}

}

System.out.println("奖池:"+num1+" "+num2+" "+num3+" "+num4);

//break;

//选号

System.out.print("请选号(一):");

intchoNum1=scan.nextInt();

//选号二

intchoNum2=0;

while(true) {

System.out.print("请选号(二):");

choNum2=scan.nextInt();

if(choNum2!=choNum1) {

break;

}

}

//选号三

intchoNum3=0;

while(true) {

System.out.print("请选号(三):");

choNum3=scan.nextInt();

if(choNum3!=choNum1

&&choNum3!=choNum2) {

break;

}

}

//选号四

intchoNum4=0;

while(true) {

System.out.print("请选号(四):");

choNum4=scan.nextInt();

if(choNum4!=choNum1

&&choNum4!=choNum2

&&choNum4!=choNum3) {

break;

}

}

System.out.println("选号:"+choNum1+" "+choNum2+" "+choNum3+" "+choNum4);

//兑奖

intcount=0;

booleanflag=true;

if(choNum1==num1) {

count++;

if(choNum2==num2) {

count++;

if(choNum3==num3) {

count++;

if(choNum4==num4) {

count++;

}else {

flag=false;

}

}else {

flag=false;

}

}else {

flag=false;

}

}else {

flag=false;

}

//中奖信息

switch(count){

case1:

System.out.println("恭喜中奖10元!");

break;

case2:

System.out.println("恭喜中奖100元!");

break;

case3:

System.out.println("恭喜中奖1000元!");

break;

case4:

System.out.println("恭喜中奖100000元!");

break;

}

}

}

}

改造:

packagecom.qf.circulate;

importjava.util.Random;

importjava.util.Scanner;

publicclassBodyColor {

publicstaticvoidmain(String[] args) {

//模拟一个体彩

//3+1

//生成随机数:new Random().nextInt()

//生成奖池

booleanflag1=true;

while(flag1) {

Scannerscan=newScanner(System.in);

System.out.println("请选择:输入 1.开始游戏\t输入2.退出游戏");

intbegin=scan.nextInt();

switch(begin) {

case1:

System.out.println("欢迎使用割韭菜彩票系统!");

//生成第一个

intnum1=newRandom().nextInt(100);

//生成第二个

intnum2 =0;

while(true) {

num2=newRandom().nextInt(100);

//判断生成的第一个值和第二个是否相同,若不相同则跳出此循环

if(num2!=num1) {

break;

}

}

//生成第三个

intnum3=0;

while(true) {

num3=newRandom().nextInt(100);

//判断生成的第三个值和第一、二个是否相同,若不相同则跳出此循环

if(num3!=num1

&&num3!=num2) {

break;

}

}

//生成第四个

intnum4=0;

while(true) {

num4=newRandom().nextInt(100);

//判断生成的第四个值和第一、二、三个是否相同,若不相同则跳出此循环

if(num4!=num1

&&num4!=num2

&&num4!=num3) {

break;

}

}

//System.out.println("奖池:"+num1+" "+num2+" "+num3+" "+num4);

//break;

//选号

System.out.print("请选号(一):");

intchoNum1=scan.nextInt();

//选号二

intchoNum2=0;

while(true) {

System.out.print("请选号(二):");

choNum2=scan.nextInt();

if(choNum2!=choNum1) {

break;

}

}

//选号三

intchoNum3=0;

while(true) {

System.out.print("请选号(三):");

choNum3=scan.nextInt();

if(choNum3!=choNum1

&&choNum3!=choNum2) {

break;

}

}

//选号四

intchoNum4=0;

while(true) {

System.out.print("请选号(四):");

choNum4=scan.nextInt();

if(choNum4!=choNum1

&&choNum4!=choNum2

&&choNum4!=choNum3) {

break;

}

}

System.out.println("选号:"+choNum1+" "+choNum2+" "+choNum3+" "+choNum4);

//兑奖

intcount=0;

booleanflag=true;

if(choNum1==num1) {

count++;

if(choNum2==num2) {

count++;

if(choNum3==num3) {

count++;

if(choNum4==num4) {

count++;

}else {

flag=false;

}

}else {

flag=false;

}

}else {

flag=false;

}

}else {

flag=false;

}

//中奖信息

switch(count){

case1:

System.out.println("恭喜中奖10元!");

break;

case2:

System.out.println("恭喜中奖100元!");

break;

case3:

System.out.println("恭喜中奖1000元!");

break;

case4:

System.out.println("恭喜中奖100000元!");

break;

default:

System.out.println("没中奖,欢迎下次再来!");

break;

}

break;

default:

System.out.println("可恶这个韭菜跑了!!!>_<");

flag1=false;

break;

}

}

}

}

作业:

  1. 请打印99乘法表(必做)

packagecom.qf.circulate;

publicclassMultiplicationTable {

publicstaticvoidmain(String[] args) {

// TODO Auto-generated method stub

inti=1;

while(i<10) {

intj=1;

while(j<=i) {

System.out.print(j+"*"+i+"="+i*j+"\t");

j++;

}

System.out.println();

i++;

}

}

}

  1. 打印一棵圣诞树(选做)

packagecom.qf.circulate;

publicclassChristmasTree {

publicstaticvoidmain(String[] args) {

// TODO Auto-generated method stub

inti=0;

while(i<4) {

intn=30;

while(n>i) {

System.out.print(" ");

n--;

}

intj=0;

while(j<=i*2) {

System.out.print("*");

j++;

}

System.out.println();

i++;

}

inta1=1;

while(a1<6) {

intn1=30;

while(n1>a1*2-1) {

System.out.print(" ");

n1--;

}

intb1=1;

while(b1<a1*4) {

System.out.print("*");

b1++;

}

System.out.println();

a1++;

}

inta2=1;

while(a2<7) {

intn2=30;

while(n2>a2*2) {

System.out.print(" ");

n2--;

}

intb2=0;

while(b2<a2*4) {

System.out.print("*");

b2++;

}

System.out.println();

a2++;

}

inta3 =1;

while(a3<8) {

intn3=26;

while(n3>0) {

System.out.print(" ");

n3--;

}

intj3=8;

while(j3>0) {

System.out.print("*");

j3--;

}

System.out.println();

a3++;

}

}

}

  1. 思考题:打印1000以内的水仙花数(一个单循环)

packagecom.qf.circulate;

publicclassDaffodil {

publicstaticvoidmain(String[] args) {

// TODO Auto-generated method stub

inti=1000;

System.out.print("一千以内的水仙花数是:");

while(i>1) {

intind=i%10;

intten=i/10%10;

inthub=i/100%10;

intsum=ind*ind*ind+ten*ten*ten+hub*hub*hub;

if(i==sum) {

System.out.print(sum+" ");

}

i--;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值