循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句的组成 初始化语句: 一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句: 这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句: 这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句: 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
在控制台输出1-10和10-1:
public class Cherris {
public static void main(String[] args) {
System.out.println("输出1-10");
for (int i=1;i<11;i++){
System.out.println(i);
}
System.out.println("输出10-1");
for (int i=10;i>0;i--){
System.out.println(i);
}
}
}
用for循环输出1到10的和;
public class Cherris {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i < 11;i++){
sum = sum + i;
}
System.out.println(sum);
}
}
用for循环求100以内的奇数和与偶数和:
public class Cherris {
public static void main(String[] args) {
System.out.println("=======求100以内的偶数和与奇数和=========");
int sum1 = 0;
int sum2 = 0;
for (int i=1; i < 101;i++){
if(i%2==0){
sum1 = sum1 + i;
}
else{
sum2=sum2+i;
}
}
System.out.println(sum1);
System.out.println(sum2);
}
}
用for循环求5的阶乘:
public class Cherris {
public static void main(String[] args) {
int x=1;
for(int i=1;i<6;i++){
x=x*i;
}
System.out.println(x);
}
}
在控制台输出满足下列条件的数:
个位等于万位;十位等于千位;个位加十位加千位加万位等于百位;
public class Cherris {
public static void main(String[] args) {
for (int number=10000;number<100000;number++){
int gewei = number%10;
int shiwei = number/10%10;
int baiwei = number/100%10;
int qianwei = number/1000%10;
int wanwei = number/10000%10;
if(gewei==wanwei && shiwei==qianwei && baiwei==(gewei+shiwei+qianwei+wanwei)){
System.out.println("符合条件的数:"+number);
}
}
}
}
循环结构的第二种:while循环
语句定义格式:
基本格式:
while(判断条件语句){
循环体语句;
}
扩展格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
while循环可以和for循环等价转换。
举例:打印10个cheris
public class Cherris1 {
public static void main(String[] args) {
for (int i=1;i<11;i++){
System.out.println("cherris");
}
System.out.println("==========while=========");
int i=1;
while (i<=10){
System.out.println("cherris");
i++;
}
}
}
求出1-100之和,用for和while循环实现。
public class Cherris1 {
public static void main(String[] args) {
int sum1=0;
for (int i=1;i<101;i++){
sum1=sum1+i;
}
System.out.println("sum1:"+sum1);
System.out.println("==========while=========");
int sum2=0;
int i=0;
while (i<=100){
sum2=sum2+i;
i++;
}
System.out.println("sum2:"+sum2);
}
}
while循环与for循环的区别:
1:它们虽然可以做等价交换,但是如果在一个范围内的话,优先使用for循环
2:当循环次数不确定的时候,优先使用While循环,例如吃葡萄,喝水
3:for循环结束后,初始化语句在外部无法访问
4:while循环结束后,初始话语句还可以继续使用
我国最高的山峰是珠穆朗玛峰,高为8848米,如果一张纸的厚度为1毫米,请问至少折叠多少次可以不低于珠穆朗玛峰。
public class Cherris1 {
public static void main(String[] args) {
for (int thickness1=1,count1=0;thickness1<884800;){
thickness1=thickness1*2;
count1++;
if (thickness1>=884800){
System.out.println("thickness:"+thickness1+"count1:"+count1);
}
}
System.out.println("==========while=========");
int thickness2=1;
int count2=0;
while (thickness2<=884800){
thickness2=thickness2*2;
count2++;
}
System.out.println("thickness:"+thickness2+"count2:"+count2);
}
}
for的嵌套循环:
public class Cherris1 {
public static void main(String[] args) {
for (int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,
她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
分析:
1、由于存钱都是每天会发生的内容,所以我们用循环去解决
又由于我们学过了for循环和while循环
因为不知道要存多少天钱,所以我们采用while循环
2、定义一个变量接收存钱的天数
public class Cherris1 {
public static void main(String[] args) {
int day=0;
double money=0;
while(money<=100){
day=day+1;
money=money+2.5;
if (day%5==0){
money=money-6;
}
}
System.out.println("day:"+day);
}
}