java流程控制之循环结构
- while循环
语法:
while(布尔表达式){
//循环内容,true就会循环
}
少数情况下需要一直循环执行,比如说服务器的请求响应监听等。
大多数情况是会让循环停下,一直true会造成死循环,会影响程序性能或造成程序卡死崩溃。
//计算1+2+3……+100=?
public class Demo6while {
public static void main(String[] args){
int i=0;//初始化
int sum=0;//初始化
while(i<100){
i=++i;//i++也可以,但上方的布尔表达式要变成(i<=100)之类的
sum=sum+i;
System.out.println("每轮加数:"+i);
System.out.println("总和为:"+sum);
}//在花括号内是每次循环都输出,在花括号外是false了后再输出
System.out.println("总和为:"+sum);
}
}
- do……while循环
语法:
do{
//代码语句
}while(布尔表达式);
while | 先判断后执行 |
do-while | 先执行后判断,总是保证循环被至少执行一次 |
- for循环
for循环执行的次数是在执行前就确定的。
语法:
for(初始化;布尔表达式;更新){//初始化、布尔表达式、更新都可为空(更新不写默认为i++),此时为死循环
//代码语句
}
练习:
//计算0到100之间的奇和与偶和
public class Demo8for1 {
public static void main(String[] args){
int a=0;
int sum1=0;
int sum2=0;
for(a=1;a<=100;a++)
{
if(a%2==0){
sum1=sum1+a;
}else {
sum2=sum2+a;
}
}
System.out.println("偶数和为:"+sum1);
System.out.println("奇数和为:"+sum2);
}
}
//输出1到100之间能被5整除的数,并且每行输出3个
public class Demo9for2 {
public static void main(String[] args){
for(int i=0;i<=1000;i++){
if(i%(5)==0){
System.out.print(i+"\t");//空格
}
if (i%(5*3)==0){//每行
System.out.print("\n");//换行;println()输出一个换一行,print()输出完不换行
}
}
}
}
//打印九九乘法表
public class Dmeo10for3 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {//i<=j,去除重复项
System.out.print(i + "*" + j + "=" + (j * i)+"\t");
}
System.out.println();
}//i竖轴,j横轴
}
}
- 增强for循环
java5引入了一种主要用于数组或集合的增强型for循环
语法:
for(声明语句:表达式){
//代码句子
}
声明语句 | 声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 |
表达式 | 表达式是要访问的数组名,或者是返回值为数组的方法。 |
如:(下部分)
public class Demo11forstrong {
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);
}//遍历数组的元素。偷懒的,用来简化上面for循环
}
}
- break continue
break | 在任何循环语句的主体部分均可使用break控制循环的流程。break用于强制退出循环,不执行循环中剩余语句。 |
continue | 在循环语句中,用来跳过循环中的一部分,接着进行下一次是否执行循环的判定 |
break:
public class Demo12break {
public static void main(String[] args){
for(int i=0;i<100;i++){
System.out.println(i);
if(i==30){
break;
}
}System.out.println("等");
}
}
结果为:
continue:
public class Demo13continue {
public static void main(String[] args) {
for (int i = 0; i <= 100; i++) {
if (i % 10 == 0) {
System.out.println();
continue;
}
System.out.println(i);
}
}
}
结果为: