1. 循环语句
当我们需要进行某项重复的工资,就需要使用循环
打印1000次hello word
public class Xunhuan {
public static void main(String[] args) {
for (int i=0;i<1000;i++){
System.out.println("hello word!");
}
}
}
1.1.循环概述
1.2. 循环语句分类
1.2.1. 循环语句-`for`
结构
for(初始值;条件;步长){
语句块
}
for :定义一个for循环
初始值:最开始的值
条件:判断什么时候开始什么时候结束
步长:每次初始值的变化
语句块:条件满足时循环所需要做的事情(
条件为真,执行步长和语句块
条件判断为假,结束循环
##在已知循环次数的情况下使用for循环
)
##死循环
for(;;){
}
int j = 0;
for (;;){
j++;
System.out.println(j);
}
1.2.2. 循环语句-`while`
while(条件){
语句块;
}
输出1到100
int i =1;
while (i<100){
i++;
System.out.println(i);
}
while定义一个while循环
条件:判断循环是否继续
语句块:条件满足时执行的内容
不知道需要多少次循环得到结果,使用while循环
死循环
int i =1;
while (true){
i++;
System.out.println(i);
}
1.2.3. 循环语句-`do...while`
do{
语句块;
}while(条件);
int i = 1;
do {
i++;
System.out.println(i);
}while (i<1);
while循环是先看条件在看运行,do...while 循环是先不管条件,执行一次,先运行再看条件,始终要运行一次
1.3.1 循环结束`break`&`continue`
控制循环
`break`关键字
跳出循环,结束循环
`continue`关键字
跳过循环,将本次循环跳过,开始下一次循环
**打印输出从1000到2021之间的所有闰年**
分别使用for循环和while
+ **我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度。**
for (int i =1000;i<2021;i++){
if (i%4==0&&i%400!=0){
System.out.println(i);
}
}
int i = 8848;
double j = 0.01;
int a = 0;
while (j<i){
j*=2;
a++;
}
System.out.println(a);
}
1.4. 嵌套循环
等腰三角形:
for (int i = 1;i<=5;i++){
for (int j = i;j<=4;j++){
System.out.print(" ");
}
for (int k = 0;k<(2*i)-1;k++){
System.out.print("*");
}
System.out.println();
}
输出99乘法表
for (int i = 1;i<=9;i++){
for (int j =1;j<=i;j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
1.求水仙花数
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,
其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",
因为153=1的三次方+5的三次方+3的三次方。
for (int i =100;i<1000;i++){
int g = i%10;
int s = (i/10)%10;
int b = i/100;
if ((g*g*g)+(s*s*s)+(b*b*b)==i){
System.out.println(i);
}
}
### 2.求1~1000内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000以内的所有完数
for (int i =1;i<1000;i++){
int sum = 0;
for (int j =1;j<i/2+1;j++){
if (i%j==0){
sum = sum+j;
}
}
if (sum == i){
System.out.println(i);
}
}
### 3.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的 三位数?都是多少?
int count = 0;
for (int i=1;i<5;i++){
for (int j=1;j<5;j++){
for (int k=1;k<5;k++){
if (i!=j&&i!=k&&j!=k){
count++;
}
}
}
}
System.out.println(count);