DoWhile循环
while先判断后执行,dowhile先执行后判断,dowhile至少执行一次
package com.sqdht.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);
}
}
package com.sqdht.struct;
public class DoWhileDemo02 {
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循环是最有效、最灵活的循环结构
IDEA里有快捷键 100.for
package com.sqdht.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循环结束");
/*
关于for循环的几点说明:
最先执行初始化步骤,可以声明一种类型,可以初始化一个或多个循环控制变量,也可以是空语句
然后,检测布尔表达式的值。true执行,false结束循环
执行一次循环后,更新循环控制变量
再次检查布尔表达式,循环上述步骤
*/
//死循环
for (;;){
}
}
}
package com.sqdht.struct;
public class ForDemo02 {
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){
oddSum+=i;
}else {
evenSum+=i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
}
package com.sqdht.struct;
public class ForDemo03 {
public static void main(String[] args) {
//练习2:用while和for循环输出0-1000之间能被5整除的数,并且每行输出3个
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");
//System.out.println();
}
}
//print输出后不会换行
//println输出后会换行
int i=0;
while(i<1000){
if(i%5==0){
System.out.print(i+"\t");
}
if(i%15==0){
System.out.println();
}
i++;
}
}
}
打印99乘法表
package com.sqdht.struct;
public class IfDemo04 {
public static void main(String[] args) {
//打印99乘法表
for (int i = 1; i <= 9; i++) {
for(int j = 1; j <= i; j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
增强for循环
Jdk5才引入了一种主要用于数组或集合的增强型for循环
package com.sqdht.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);
}
}
}
break,continue,goto
break用于强行退出循环,break可以用在switch语句中,辞职
continue用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定,请假。
goto,很烦,在java中可以通过标签(label)跟break,continue来实现类似goto的功能
package com.sqdht.struct;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100){
i++;
System.out.println(i);
if(i==30){
break;
}
}
System.out.println("123");
}
}
package com.sqdht.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;
}
System.out.print(i+"\t");
}
}
}
package com.sqdht.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+" ");
}
}
}
打印三角形以及Debug
package com.sqdht.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();
}
}
}
Debug:加断点,点瓢虫。