while循环
·语法:
While(布尔表达式){
//循环内容
}
·注意:
·只要布尔表达式为TRUE,循环就会一直执行下去
·我们大多数情况是会让循环停下来的,我们需要一个让表达式失效的方式来结束循环
·少部分情况需要循环一直执行,比如服务器的请求响应监听等
·循环条件一直为TRUE就会进人死循环,我们正常的业务中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃
package com.yu.struct;
public class WhileDemo01 {
public static void main(String[] args) {
//输出1到100
int i = 0;
while (i<100){
i++;
System.out.println(i);
}
}
}
实战:计算1+2+3+...+100
package com.yu.struct;
public class WhileDemo02 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<=100){
sum=sum+i;
i++;
}
System.out.println(sum);
}
}
do...while循环(先do再while)
·对于while而言,如果不满足条件,则不能进入循环,但我们有时候需要即使不满足条件,也至少执行一次
·do...while循环和while循环相似,不同的是,do...while循环至少会执行一次
·语法:
do{
//代码语句
}while(布尔表达式);
实战:计算1+2+3+...+100
package com.yu.struct;
public class DoWhileDemo01 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum=sum+i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
do...while循环和while循环的区别
·while先判断后执行,do...while先执行后判断
·do...while循环总是保证循环体会至少执行一次!!!
证明
public class DoWhlieDemo02 {
public static void main(String[] args) {
int a =0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("======================");
do {
System.out.println(a);
a++;
}while (a<0);
}
}
For循环
·for循环语句是是支持迭代的一种通用结构,是最有效、最灵活的循环结构
·for循环执行的次数是在执行前就确定的
·语法:
for(初始化;表达式;更新){
代码语句
}
·注意:
·最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
·接着,检测布尔表达式的值,如果为TRUE,则循环体被执行。如果为FALSE,循环终止,开始执行循环体后面的语句。
·执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
·for(;;)为死循环
While与for循环的区别
package com.yu.struct;
public class ForDemo021 {
public static void main(String[] args) {
int a = 1;//初始化条件
while (a<=100){//条件判断
System.out.println(a);//循环体
a+=2;//a=a+2迭代
}
System.out.println("while循环结束");
System.out.println("===================");
for(int i=1;i<=100;i++){//初始化值;条件;迭代
System.out.println(i);
}
System.out.println("for循环结束");
}
}
实战
1、计算0到100之间的奇数和偶数的和
package com.yu.struct;
public class ForDemo02 {
public static void main(String[] args) {
//计算0到100之间的奇数和偶数的和
int oddSum=0;//奇数和
int evenSum=0;//偶数和
for (int i = 0; i < 100; i++) {
if (i%2!=0){
oddSum=i+oddSum;
}else{
evenSum=evenSum+i;
}
}
System.out.println("奇数和为:"+oddSum);
System.out.println("偶数和为:"+evenSum);
}
}
2、用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
package com.yu.struct;
public class ForDemo03 {
public static void main(String[] args) {
//用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
for (int i = 0; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");//不换行并且打印tab键
}
if (i%(5*3)==0){//每行输出3个
System.out.println();
//或者用 System.out.print("/n"); 来换行.......“/n"为换行的转义字符
}
}
}
}
//println输出完会换行
//print输出完不会换行
注意:println输出完会换行
print输出完不会换行
3、打印九九乘法表
package com.yu.struct;
public class ForDemo04 {
public static void main(String[] args) {
//打印九九乘法表
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
/*方法:将一个大问题划分成小问题
1、先打印第一页
2、把固定的1再用一个循环包起来
3、去掉重复项
4、调整样式
*/
增强for循环
·语法:
for(声明语句:表达式)
{
//代码句子
}
实例:
package com.yu.struct;
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义了 一个数组
for (int i=0;i<5;i++){
System.out.println(numbers[i]);
}
System.out.println("=================");
//遍历数组的元素
for (int x:numbers){
System.out.println(x);
}
}
}