概述
一、for循环
for(初始化条件;条件判断语句;条件控制语句){
循环体语句
}
执行流程:
1、首次执行初始部分(仅一次)。
2、对条件判断语句(布尔表达式)进行判断,结果为true,则执行逻辑代码。
3、本次执行完毕后,执行条件控制语句,再次判断,结果仍旧为true,则再次执行逻辑代码(循环体语句)。
4、直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
以下插入案例:
//打印1-10
public class Demo01{
public static void main(String[] args){
for(int i=1;i<11;i++){
System.out.println(i);
}
}
}
经典案例1
public class Demo02{
public static void main(Stirng[] args){
//外循环控制行数
for(int i=1;i<5;i++){
//内循环控制列数
for(int j=1;j<i+1;j++){
System.out.print("*");
}
System.out.println();
}
}
}
经典案例1结果为:*
**
***
****
for循环打印类似图案,要记住:外层控制层数,内层控制列数。
经典案例2
public class Demo03{
public static void main(String[] args){
for(int i=1;i<5;i++){
for(int j=1;j<5-i-1;j++){
System.out.print(" ");
}
for(int j=1;j<i+1;j++){
System.out.print("*");
}
}
}
}
经典案例2结果为: (1个空格) *
(2个空格) **
(3个空格) ***
(没有空格) ****
二、while循环
while(布尔表达式){
循环体语句
条件控制语句
}
执行流程:
1、先对布尔表达式进行判断,结果为true,则执行循环体语句。
2、本次执行完毕后,再次进行判断,若结果仍旧为true,则再次执行循环体语句。
3、直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
do{
循环体语句
}while(布尔表达式);
执行流程:
1、先执行一次循环操作之后,再进行布尔表达式的判断。
2、如果结果为true,则再次执行循环操作。
3、如果结果为false,才会退出循环结构,执行后续代码。
以下插入案例:
//生成随机数,打印随机数并打印1-100之间比随机数大的奇数
import java.util.Random;
public class Demo04{
public static void main(String[] args){
Random ran=new Random();
int num=ran.nextInt(100)+1;//取值范围[1,101)
System.out.println("随机数:"+num);
int i=1;
while(i<101){
if(i>num && i&2!=0){
System.out.println(i);
}
i++
}
}
}
//我想存款过百万,月收入15k,每个月存8k,问多久完成梦想?
public class Demo08{
public static void main(String[] args){
//存款
int money = 0;
//月份
int month = 0;
while(money < 1000){
//存钱
money += 8;
//月份+1
month++;
}
System.out.println("存款百万需要:"+month+"个月");
}
}
下面小编制作了一个数字游戏:
import java.util.*;
public class Test05{
public static void main(String[] args){
int max=100;//最大值
int min=1;//最小值
int guess=0;//猜的数字
Scanner sc=new Scanner(System.in);
Random ran=new Random();
int num=ran.nextInt(98)+2; //随机数 随机生成范围[2,100)之间的数
do{
System.out.println("请在"+min+"到"+max+"之间猜一个数");
guess=sc.nextInt();//获取用户的数据
if(guess<=min || guess>=max){//获取用户猜测的数是否在最大或最小值
System.out.println("输入有误");
continue;
}
if(guess>num){
max=guess;//比随机数大,改变猜的数为最大值
}else if(guess<num){
min=guess;//比随机数小,改变猜的数为最小值
}
}while(guess!=num);
System.out.println("恭喜你中奖,随机数为"+num);
}
}
三、关于循环的周期
public class Demo03{
public static void main(String[] args){
//变量的生命周期,在循环里定义的变量,循环结束则销毁
for(int i=1;i<11;i++){
}
System.out.println(i);//报错
}
}
public class Demo04{
public static void main(Stirng[] args){
int i=0;//生命周期为main方法
for(i=1;<i<11;i++){
//循环结束时i为11
}
System.out.println(i);//11
}
}
四、关于循环的习题
//我想存款过百万,月收入15k,每个月存8k,问多久完成梦想?
public class Demo08{
public static void main(String[] args){
int money = 0;
int month = 0;
while(money<1000?){
money+=8;
month++;
}
System.out.println("存款百万需要:"+month+"个月");
}
}
//百万存款,每个月固定存8k,从第二个月起,每个月多存500,问多久完成梦想?
public class Demo09{
public static void main(String[] args){
double money = 0;//固定存款
int month = 0;//月份
double addMoney = 0;//额外多存的金额
while(money<1000){
money = money + 8 + addMoney;//随着月份增长一共存了多少钱
month++;//月份+1
addMoney+=0.5;//每月额外多存500
}
System.out.println("存款百万需要:"+month+"个月");
}
}
注意:
1、首先从题目中获取有用的变量,此题有用的变量是money和month,第0个月时变量均为0
2、思考问题每个月重复对应的工作,选择运用循环来完成
3、注意循环语句里必须包含的变量是存款和月份,注意两者前后顺序
4、最后在循环体外输出语句
//打印九九乘法表
public class Homework{
public static void main(String[] ags){
for(int i=1;i<10;i++){
for(int j=1;j<i+1;j++){
System.out.print(j+"*"+i+"="+i*j+"t");
}
System.out.println();
}
}
}
解题思路:
1、题目思路应该从打印*(经典案例1)中得出,因为九九乘法表由数字组成,所以只需要从打印的内容入手
2、观察九九乘法表的规律,第一列左边第一个数为1,由于内循环控制列,因此打印的第一个数为j,第二个数为i
3、思考此题,有那些字符串是不需要变动的,“*”(乘号)和“=”(等号)是不需要变动,因此要加入字符串表示
4、打印出来的表比较紧凑,因此需要插入一个水平制表符
分享一道挺有意思的题:(两种解题方法)
//输入正整数,判断是否为素数(只能被自身和1整除的数)
imoport java.util.Scanner;
public class Demo{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int num;
while(true){
System.out.println("请输入正整数");
num=sc.nextInt();
if(num<1){
System.out.println("输入有误");//输入有误,往下执行false,直接跳回while循环
}else if(num==1){
System.out.println(num+"不是素数");
break;//跳出while循环,往下没代码,程序结束
}else{ //此时num>1
for(int i=2;i<num;i++){
if(num%i==0){ //判断是否能被整除
System.out.println(num+"不是素数");
return;//结束方法
}
}
System.out.println(num+"是素数");
break;
}
}
}
}
import java.util.Scanner;
public class Homework1{
public static void main(String[] args){
System.out.println("请输入一个正整数");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
if(num>0){
if((num%num==0 && num%1==0) && num!=1){
System.out.println("不是素数");
}else{
System.out.println("是素数");
}
}else if(num<=0){
System.out.println("输入有误,请重新输入正整数");
}
}
}
最后
以上就是时尚向日葵为你收集整理的for循环和while循环一、for循环二、while循环三、关于循环的周期 四、关于循环的习题的全部内容,希望文章能够帮你解决for循环和while循环一、for循环二、while循环三、关于循环的周期 四、关于循环的习题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复