while循环
-
while循环是最基本的循环
-
只有布尔表达式为true,循环就会一直执行下去
-
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
-
少部分情况需要循环一直执行,比如服务器的请求响应监听等
package com.baidu.struct; public class WH1 { 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.baidu.struct; //高斯的故事 public class WH2 { 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循环
-
对于while语句而言,如果不满足条件,则不能进入循环。但有时我们需要即使不满足条件,也至少执行一次
package com.baidu.struct; public class DW1 { public static void main(String[] args) { int i=0; int sum=0; do { sum=sum +i; i++; }while (i<=100); System.out.println(sum); } }
-
while与do.....while的区别
-
while先判断后执行,dowhile是先执行后判断
-
dowhile总是抱着循环体会被至少执行一次!(主要差别)
-
package com.baidu.struct; import java.security.spec.PSSParameterSpec; public class DW2 { public static void main(String[] args) { int i=0; while (i<0){ System.out.println(i); i++; } System.out.println("--------------"); do { System.out.println(i); i++; }while (i<0); } }
for循环
-
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
package com.baidu.struct; public class F1 { public static void main(String[] args) { int a=0;//初始化 while (a<100){//条件判断 System.out.println(a);//循环体 a+=2;//迭代 } System.out.println("while循环结束"); // 初始化;条件判断;迭代 for (int i=0;i<100;i++){ System.out.println(i); } System.out.println("for循环结束"); //死循环 for (;;){ } } }
练习1:计算0到100之间的奇数和偶数的和
package com.baidu.struct; public class F2 { public static void main(String[] args) { //练习1:计算0到100之间的奇数和偶数的和 int oddSum=0; int evenSum=0; for (int i = 0; i <=100; i++) { if (i%2!=0){ evenSum+=i; }else { oddSum+=i; } } System.out.println("0到100偶数的和为:"+oddSum); System.out.println("0到100的奇数和为:"+evenSum); } }
练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个
package com.baidu.struct; public class F3 { public static void main(String[] args) { //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个 for (int i=1;i<=1000;i++){ if (i%5==0){ System.out.print(i+"\t"); } if (i%15==0){//实现每三个数换行 System.out.println(); } } //println 输出会换行 //print 输出不会换行 } }
练习3:打印九九乘法表
package com.baidu.struct; public class F4 { public static void main(String[] args) { //打印九九乘法表 //1.我们先打印第一列 //2.我们把固定的1用一个循环包起来 //3.去掉重复项 i<=j //4.调整样式 for (int j = 1; j <= 9; j++) { for (int i = 1; i <= j; i++) { System.out.print(i+"*"+j+"="+(j*i)+"\t"); } System.out.println(); } } }
增强for循环
主要用于数组或集合的增强型for循环
package com.baidu.struct; public class F5 { 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); } } }
break语句和continue语句
-
break在任何循环语句的主体部分均可以用break控制循环的流程,break用于强制退出循环,不执行循环中剩余的语句(break也在switch语句中使用)
package com.baidu.struct; public class B1 { public static void main(String[] args) { int i=0; while (i<100){ i++; System.out.println(i); if (i>47){ break; } } } }
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
package com.baidu.struct; public class C1 { public static void main(String[] args) { int i=0; while (i<100){ i++; if (i%10==0){ System.out.println(); continue; } System.out.print(i+"\t"); } } }
使用标签
打印质数:
package com.baidu.struct; public class Outer { public static void main(String[] args) { //打印101-150之间的质数 int count=0; outer : for (int i=101;i<150;i++){ for (int j=2;j<i/2;j++){ if (i%j==0){ continue outer; } } System.out.print(i+" "); } } }
流程控制练习:三角形
package com.baidu.test; public class T1 { public static void main(String[] args) { //打印三角形 for (int i = 1; i <= 5; i++) { for (int j = 5; j >= i; j--) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print("*"); } for (int j = 1; j < i; j++) { System.out.print("*"); } System.out.println(); } } }
何谓方法?
-
Java方法是语句的集合,它们在一起执行一个功能
-
Java方法是解决一类问题的步骤的有序集合
-
方法包含于类或对象中
-
方法在程序中被创建,在其他地方被引用
-
-
设计方法的原则:就是一个方法只完成1个功能,这样有利于我们后期的扩展
package com.baidu.method; public class M1 { //main方法 public static void main(String[] args) { //实际参数:实际调用传递给他的参数 int sum = add(1, 2); System.out.println(sum); } //加法 //形式参数:用来定义作用的 public static int add(int a,int b){ return a+b; } }
方法的定义和调用
-
方法包含一个方法和一个方法体
修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; }
-
调用方法(比大小)
package com.baidu.method; import javax.xml.transform.Result; public class M2 { public static void main(String[] args) { int max = max(99, 99); System.out.println(max); } //比较大小 public static int max(int a,int b){ int result=0; if (a==b){ return 0;//终止方法 } if (a>b){ result=a; }else { result=b; } return result; } }
值传递(Java)和引用传递
-
值传递(pass by value):在调用函数时,将实际参数复制一份传递到函数中,这样在函数中对参数进行修改,就不会影响到原来的实际参数
-
引用传递(pass by reference):在调用函数时,将实际参数的地址直接传递到函数中。这样在函数中对参数进行的修改,就会影响到实际参数