循环结构
Hello!CSDN的小伙伴们。
这里是老汉的Java成长之路专栏,感兴趣的话就关注老汉并订阅本系列的专栏一起学习吧。
前言
本期老汉将为大家介绍流程控制中的循环结构,循环结构可以减少程序重复书写的工作量,用来描述重复执行某段算法的问题,这也是程序设计中最能发挥计算机特长的程序结构。
一、while循环
语法格式:
while(循环条件)
{
<语句块>
}
解释:循环条件结果为布尔值类型
执行流程:
题目案例:
循环输出26个英文字母,分为两行,上行为小写,下行为大写。
public static void main(String args[])
{
char cup='A',cdn='a';
int cont=0;
while(cont<26)
{
System.out.print((char)(cdn+cont));//强制转换为char类型,不然输出结果是ASCII码值
cont++;
}
System.out.println();
cont=0;
while(cont<26)
{
System.out.print((char)(cup+cont));
cont++;
}
}
二、do-while循环
**语法格式:
do {
<语句块>
}while(条件);
解释:while循环条件后的;不能遗漏。
执行流程:
题目案例:
设置一个猜字游戏,猜一个介于1~10之间的数。
要求:
1.数字随机生成一个1~10之间的数;
2.猜错了需要提示太小了或太大了;
3.猜中需要提示猜中并且告知答案;
4.直至猜中为止结束游戏。
public static void main(String args[])
{
//设置一个随机的数
int number=(int)(Math.random()*10+1);//随机生成一个1~10之间的数
int guess;
System.out.println("猜一个介于1~10之间的数");
do
{
System.out.println("请输入您猜测的数:");
Scanner scanner=new Scanner(System.in);
guess=scanner.nextInt();
if(guess>number)
{
System.out.println("太大了!");
}
else if(guess<number)
{
System.out.println("太小了!");
}
}while(number!=guess);
System.out.println("恭喜你猜中了!答案为"+number);
}
随机生成数值
代码如下:
Math.random();此时随机生成范围为[0,1),数值为double类型;
Math.random()*x;此时随机生成范围为[0,x)。
可运用强制转换转换为int类型等。
三、for循环
关于for循环的一些基本知识点老汉有出过相关博客,链接如下:
Java特有的for循环
注意事项:for循环的三个表达式都可以省略,形式如下:
原格式:for(<语句块1>;表达式;<语句块2>)
1.省略<语句块1>或<语句块2>
for(;表达式;)
表达式不满足退出循环
2.省略表达式
for(;;)
循环持续进行,陷入死循环
四、嵌套循环
循环结构与选择结构一样,可以采用嵌套的形式,也就是在循环结构的语句块中加入循环结构,例如:
while(条件){
while (条件){
<语句块>
}
<语句块>
}
do {
while (条件){
<语句块>
}
<语句块>
}while(条件);
for (<语句块1>;表达式;<语句块2>){
for (<语句块1>;表达式;<语句块2>){
<语句块>
}
<语句块>
}
嵌套循环的表达形式有很多,也很好理解,在这里就不做过多的讲解了
五、break、continue
1.break
a.只能在循环体内和switch语句体内使用break;
b.不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码;
c.当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
d.当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想使用break语句跳出外层循环,则需要在外层循环中使用break语句
2.continue
a.continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环;
b.continue语句并没有使整个循环终止;
c.continue 只能在循环语句中使用,即只能在 for、while 和 do…while 语句中使用。
六、操作练习
题目:用星号输出一个梯形,如下图所示:(使用嵌套for循环完成)
要求:
1.外重循环控制输出行数;
2.第一个内重循环控制输出的空格数,依次递减;
注意:由于星号和空格在屏幕上所占空间不同,所以可以适当调整空格的输出,比如每次循环都输出两个空格、一个星号一个空格,这样输出来的图形会更加接近梯形。
3.第二个内重循环控制每行输出的星号数;
4.输出完一行的星号和空格后换行。
答案示例如下:
public static void main(String[] args)
{
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5-i;j++)
{
System.out.print(" ");//两个空格
}
for(int t=1;t<=11-(5-i)*2;t++)
{
System.out.print("* ");//一个星号一个空格
}
System.out.println();
}
}
本期小结
到这里我们就结束了本期关于循环结构的学习,本期信息量不多,需要各位对文章中提到的题型进行多次练习,可以去了解debug的使用,有助于我们检查代码的错误。最后,老汉在这里祝愿各位每一个明天都比昨天的自己更加优秀,感谢各位的观看。