1、while循环
/**
* 使用while循环 计算 2+4+6+8+...+100
*/
//初始化变量
int i=2;
int sum=0;
while(i<=100) {
if(i%2==0) {
sum+=i;
}
i++;
}
System.out.println("总和为"+sum);
while循环适用于不确定的次数。
/**
* 编写一个程序,从键盘读取个数不确定的整数,并且判断读入的
* 正数和负数的个数,输入0时结束程序
* 统计正数和负数的个数
*/
Scanner sc=new Scanner(System.in);
int count=0;//正数的个数为0
int count1=0;//负数的个数为0
while(true) {
System.out.println("请输入整数:");
int num=sc.nextInt();
if(num>0) {
count++;
}else if(num<0) {
count1++;
}else {
System.out.println("结束程序");
break;
}
}
System.out.println("正数的个数为:"+count+",负数的个数为:"+count1);
2、do…while循环
/**
* 语法:
* ①初始化变量
* do{
* ②循环体
* ③累加器
* }while(④循环条件)
*
* 执行顺序:
* 1、初始化变量
* 2、执行do循环体和累加器,执行完成后进行循环条件判断,如果结果
* 为true,继续执行循环体和累加器,以此类推,直到循环条件不满足为false的
* 情况下,结束循环
*
* while和do...while的区别:
* 1、while先判断后执行
* 2、do...while:先执行后判断,至少会执行一次循环体。
*/
//抄课文
//1、初始化变量
int num=1;
do {
//2、循环体
System.out.println("抄课文"+num);
//3、累加器
num++;
}while(num<=0); //4、循环条件
System.out.println("==============while");
//1、初始化变量
int num1=1;
while(num1<=0) {//2、循环条件
//3、循环体
System.out.println("抄课文"+num1);
//4、累加器
num1++;
参考其他题目(do…while):
// 使用do while循环打印100以内4的倍数
int i=4;
do {
if(i%4==0) {//4的倍数
System.out.println(i);
}
i++;
}while(i<=100);
/**
* 不断要求用户输入一个数字(输入的都是正整数),
* 当用户输入end时,结束操作,同时计算出刚才所有数据的最大值
*/
Scanner sc=new Scanner(System.in);
int max=0;
boolean flag=true;
while(flag) {
System.out.println("请输入一个正整数:");
String str=sc.next();
if(str.equals("end")) {
//结束循环
flag=false;
}else {
//把输入的字符串类型转换为int
int num=Integer.parseInt(str);
if(num>max) {
max=num;//取最大值
}
}
}
System.out.println("max:"+max);
3、for循环
/**
* for循环是我们使用的最多的一种,为我们专门提供了一个位置,存放
* 三个表达式:
* 1、初始化表达式
* 2、循环条件表达式
* 3、累加器
*
* 语法:
* for(①初始化表达式;②循环条件表达式;④累加器){
* ③循环体;
* }
*
* 执行流程:
* 1、执行初始化表达式①
* 2、执行条件表达式②,如果条件满足,执行循环体③、累加器④,以此类推
* 直到条件不满足,结束循环
*
* while和for循环:
* 特点:
* while适用在循环次数不固定的时候,for循环适用在循环次数固定的情况下
*
*/
//for实现抄课文
for(int i=1;i<=10;i++) {
System.out.println("抄课文"+i);
}
参考其他题目:
1、
//1、键盘输入一个正整数n,计算1+2+...+n,并输出
Scanner sc=new Scanner(System.in);
int sum=0;//初始的和为0
System.out.println("请输入n:");
int n=sc.nextInt();
for(int i=1;i<=n;i++) {
sum+=i;
}
System.out.println("sum:"+sum);
2、
//2、使用for循环方式打印100以内4的倍数
for(int num=1;num<=100;num++) {
if(num%4==0) {
System.out.println(num);
}
}
3、
//3、找出100-999之间的水仙花数
for(int num1=100;num1<1000;num1++) {
int baiwei=num1/100;//百位上的数字
int shiwei=num1/10%10;//十位上的数字
int gewei=num1%10;//各位上的数字
if(baiwei*baiwei*baiwei+shiwei*shiwei*shiwei+gewei*gewei*gewei==num1) {
System.out.println(num1);
}
}
4、
/**
* 通过程序画出以下图形
* *****
* *****
* *****
* *****
* *****
*/
//外层循环控制图形的高度
for(int i=1;i<=5;i++) {
// for(int k=1;k<=5;k++) {//保证每一行都有5个空格的距离
// System.out.print(" ");
// }
//内层循环控制图形的宽度
for(int j=1;j<=5;j++) {
System.out.print("*");
}
System.out.println();
}
5、
/**
* 某次程序大赛,3个班级4名学员参赛,计算每个班参赛学员的平均分
*/
Scanner sc=new Scanner(System.in);
double sum=0;//总分
double avg=0;//平均分
//外层循环控制班级
for(int i=1;i<=3;i++) {
//内层循环控制班级学员
for(int j=1;j<=4;j++) {
System.out.printf("请输入第%s班第%s个学员的成绩:\n",i,j);
// System.out.println();
//定义变量记录学员的成绩
double score=sc.nextDouble();
sum+=score;
}
System.out.println();
//求平均成绩
avg=sum/4;
System.out.printf("第%s班平均分:"+avg,i);
System.out.println();
}
6、
/**
* 打印九九乘法表
*
* 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
for(int i=1;i<=9;i++) {
for(int j=1;j<=9;j++) {
System.out.print(i+"*"+j+"="+(i*j)+"\t");// \t是空格
}
System.out.println();
}
7、
/**
* 打印乘法表:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) { //j<=i
System.out.print(i+"*"+j+"="+(i*j)+"\t");// \t是空格
}
System.out.println();
}
4、死循环
//死循环
int i=0;
while(i==0) {
System.out.println(i);
}
for(;;) {
}
5、break , continue
/**
* 按顺序打印1-10,遇到3终止打印
*/
for(int i=1;i<=10;i++) {
if(i==3) {
break;//一旦执行,会立刻终止整个循环
}
System.out.println(i);
}
for(int i=1;i<=10;i++) {
if(i==4) {
continue;//跳过当此循环,继续下一次循环
}
System.out.println(i);
}
6、初识数组
/**
* 1、数组是什么?为什么需要使用数组
*
* 比如我要统计每位员工的工资,我得定义多个变量去
* 分开存储,如果过多员工,就太麻烦了。
*
* 那么我怎么用一个变量来存储多个员工的工资呢?
* 可以使用数组,数组就是一个大的容器,它可以存放多个值
* 2、什么是数组?
* 数组和变量差不多,都是存放数据的,不同的是变量只能
* 保存一条数据,而数组可以保存多条数据,前提是这多条数据必须是
* 同一类型的
* 数组是引用数据类型
*
*/