2022/4/17 JavaDay09
1. while循环
while(){}
-
条件正确循环一直执行
-
package com.sundada.struct; public class WhileDemo01 { public static void main(String[] args) { //输出1~100 int i=0; while (i<100){ i++; System.out.println(i); } } }
package com.sundada.struct;
public class WhileDemo02 {
public static void main(String[] args) {
//死循环
while (true){
//等待客户端连接
//定时检查
//......
}
}
}
package com.sundada.struct;
public class WhileDemo03 {
public static void main(String[] args) {
//计算1一直加到100
int i=0;
int sum=0;
while (i<=100) {
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
2. do...while循环
区别:
-
while先判断后执行,do while先执行后判断
-
do while至少执行一次
package com.sundada.struct;
public class DoWhileDemo02 {
public static void main(String[] args) {
int a=0;
while (a<0){
System.out.println(a);
}
System.out.println("========");
do {
System.out.println(a);
}while (a<0);
// ========
// 0
}
}
3. For 循环
package com.sundada.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a=1;//初始化条件
while (a<=100){//条件判断
System.out.println(a);//循环
a+=2;//迭代
}
System.out.println("while循环结束");
for (int i = 1; i <100 ; i++) {
System.out.println(i);
}
System.out.println("for循环结束");
/*
* 可以为空语句
* */
}
}
-
计算0~100之间所有奇数和偶数的和
package com.sundada.struct;
public class ForDemo02 {
public static void main(String[] args) {
int oddSum=0;
int evenSum=0;
for (int i = 0; i < 100; i++) {
if ( i%2!=0 ){
oddSum=oddSum+i;
}else {
evenSum=evenSum+i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
}
-
用while和for循环输出1~1000之间能被5整除的数,每行输出三个
package com.sundada.struct;
public class ForDemo03 {
public static void main(String[] args) {
//用while和for循环输出1~1000之间能被5整除的数,每行输出三个
for (int i = 0; i < 100; i++) {
if ( i%5==0 ){
System.out.print(i+"\t");//这里使用print,切记
}
if ( i%(5*3)==0 ){
System.out.print("\n");//==println
}
}
//println输出会换行
//print输出不会换行
}
}
-
打印九九乘法表
循环嵌套循环
package com.sundada.struct;
public class ForDemo04 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
4. 增强For循环
for(){}
package com.sundada.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);
}
}
}
5. break,continue,goto
-
break用于强制终止循环
package com.sundada.struct;
public class BreakDemo01 {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(i);
if ( i==30 )break;//仅仅终止这个for循环
}
System.out.println("123");
}
}
-
continue用于终止某次循环,接着执行下一次循环
package com.sundada.struct;
public class ContinueDemo {
public static void main(String[] args) {
int i=0;
while (i<100){
i++;
if ( i%10==0 ){
System.out.println();
continue;//能被10整除则换行
}
System.out.print(i+"\t");
}
}
}
-
goto关键字
java没有goto,但可以看到他的影子,可能使用label标签来实现
package com.sundada.struct;
public class LabelDemo {
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+" ");
}
}
}
6. 练习
打印三角形
debug左上角那个蟑螂,记得设定断点
package com.sundada.struct;
public class TestDemo {
public static void main(String[] args) {
//打印三角形 5行三角形
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();
// *
// ***
// *****
// *******
// *********
}
}
}