-
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); } }
-
对于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
流程控制练习:三角形
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):在调用函数时,将实际参数的地址直接传递到函数中。这样在函数中对参数进行的修改,就会影响到实际参数
原文链接:JAVA:值传递和引用传递_SummerOfFoam的博客-CSDN博客_引用传递和值传递



