循环语句:while
1.
打印
1~10
之间所有数据
public class WhileDemo {
//提供While循环的使用
public static void main(String[] args) {
//使用while循环打印1~10之间所有数据
/*
分析:
1.重复操作事情 —》 【打印数据】
2.重复操作的次数 —》【打印1到10】应该是10个数字,重复10次
*/
//循环变量赋初值【定义循环开始的位置】
int i = 1;
//只要循环条件为true值循环就会执行,只有当循环条件为false时循环才会停止
while (i<=10){ //循环条件
//重复操作的事情
System.out.println(i);
//控制循环变量【需要让i变量进行自增操作 ++】
i++;
}
}
}
2.计算1-100之间的和
public static void main(String[] args) {
//使用while循环实现
//定义一个变量,记录累加求和
int sum = 0;
//定义初始化表达式
int i = 1;
//使用while循环让初始化表达式的值变化
while(i<=100){
//累加求和
sum += i ;
//步进表达式改变变量的值
i++;
}
//打印求和的变量
System.out.println(“1‐100的和是:”+sum);
}
3.利用while循环计算100以内(包括100),所有的奇数、偶数和3的倍数
public class WhileDemo2 {
public static void main(String[] args) {
/*
分析:
1.重复操作的事情 —》 需要提供判断数据是否是奇数、偶数和3的倍数
如果需要提供所有的奇数、偶数和3的倍数都要打印出来,此时应该提供一个什么样if判断
是合理?
三个条件 —》 if-else if —》不可以,因为if-else if原则 只要有一个条件判断为true,剩余条件皆不判断 就会出现少一个打印结果情况 –》 那么应该选用谁?
2.重复的次数 –》 从1~100之间的所有数据 —》 100次
*/
//循环变量赋初值
int i = 1;
while(i<=100){ //循环条件
//重复操作的事情
//先提供if-else if分支判断 –》无法完成具体需求
//修改为 if 单分支
if(i %2 == 0){
System.out.println(“偶数:”+i);
}
if(i%2 == 1){
System.out.println(“奇数:”+i);
}
if(i%3 ==0){
System.out.println(“3的倍数:”+i);
}
//循环变量控制
i++;
}
}
}
4.使用while循环求1~100以内所有奇数的和
int i = 1;
int sum = 0;
while(i<=100){
if (i%2!=0){
sum+=i;
}
i++;
}
System.out.println(sum);
5.我国最高山峰是珠穆朗玛峰:8848m,
我现在有一张足够大的纸张,厚度为:0.01m。
请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?(不明确次数使用while)
double h=0.01;
int num=0;
while(h<8848){
h*=2;
num++;}
System.out.println(num);
6. 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
System.out.println(“请输入一个整数:”);
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int sum=0;
while(num!=0){
sum=sum+num%10;
num=num/10;
}
System.out.println(“各位上数字的和:”+sum);
水仙花数 :水仙花数指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
for循环和while循环分别实现获取所有的水仙花数
int sum = 0;
for(int i=100;i<=1000;i++){
int b = i/100;
int s = (i-100*b)/10;
int g = (i-s*10-b*100);
if(i==g*g*g+s*s*s+b*b*b){
System.out.print(i+” “);
sum++;}}
System.out.println(‘\t’);
System.out.println(“总共有”+sum+”个水仙花数”);
int i=0;
int j=100;
while(j<1000){
int a=j%10;
int b=j/10%10;
int c=j/100%10;
if(j==a*a*a+b*b*b+c*c*c){
System.out.println(“水仙花个数为:”+j);
i++;
}j++;}System.out.println(“水仙花数:”+i);
循环语句:do –while
1.输出10次HelloWorld
public static void main(String[] args) {
int x=1;
do {
System.out.println(“HelloWorld”);
x++;
}while(x<=10);
}
2.
打印
1~10
之间所有数据
public class DoWhileDemo {
public static void main(String[] args) {
//使用do-while循环打印1~10之间所有数据
//1.提供循环变量赋初值
int i = 1;
do{
//重复操作的事情
System.out.println(i);
//控制循环变量
i++;
}while(i<=10);
//只要循环条件true就执行循环,只有当循环条件为false停止循环
}
}