import java.util.Scanner;
public class Testthree{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.println("请输入一个单词");String word = input.next();//equals方法的定义是比较两个字符串是否相等,考虑大小写while(!word.equals("exit")){System.out.println("当前输入的单词是:"+word);System.out.println("请输入一个单词");word = input.next();}}
}
do{循环体语句;
}while(循环条件语句);
特点:do…while结构的循环体语句是至少会执行一次的
do…while先执行后判断
import java.util.Scanner;
public class TestFour{public static void main(String[] args){Scanner input = new Scanner(System.in);do{System.out.println("请输入一个单词");String word = input.next();System.out.println("当前输入的单词是:"+word);}while(!word.equals("exit"));//报错:变量超过声明周期,word变量在do大括号里面声明,生命周期即也在里面,while里面的word即超过了生命周期}
}
正确的:
格式调整为ANSI
import java.util.Scanner;
public class TestFour{public static void main(String[] args){Scanner input = new Scanner(System.in);String word = "";//记得补枪do{System.out.println("请输入一个单词");word = input.next();if(!word.equals("exit")){System.out.println("当前输入的单词是:"+word);}else{System.out.println("输入是exit退出");}}while(!word.equals("exit"));}
}
import java.util.Scanner;
public class Testthree{public static void main(String[] args){Scanner input = new Scanner(System.in);String password1 = "";//记得补枪String password2 = "";do{System.out.println("请输入密码");password1 = input.next();System.out.println("请输入确认密码");password2 = input.next();if(!password1.equals(password2)){System.out.println("当前输入的两次密码不一致,请重新确认");}}while(!password1.equals(password2));System.out.println("两次密码一致,退出");}
}
还是得自己敲,全是小细节错误
do{循环体语句;//如果此时循环中没有跳出循环的语句就是死循环
}while(True);
for(初始化语句;循环条件语句;迭代语句){循环体语句;
}
for循环用于循环次数确定,先判断后执行的情况
while循环次数不确定,先判断后执行的情况
for循环由两个分号分割出三个表达式,第一个表达式定义循环变量,第二个表达式判断循环条件,第三个表达式改变循环变量
public class Testthree{public static void main(String[] args){int sum = 0;for(int i =1;i<=100;i++){sum +=i;}System.out.println(i);System.out.println(sum);}
}
for循环的三个表达式都是可以省略,但是两个分号不能省略
for(int i =1;i<=100;i++){sum +=i;}
可以改为
int i = 1;
for(;i<=100;){sum +=i;i++;
}
break:终止switch或者当前循环
break通常写在if下面
break只跳出一层循环
continue:提取结束本次循环,继续下一次循环
一个循环的循环体是另一个循环,例如for循环里面还有一个for循环
public class Testthree{public static void main(String[] args){int sum = 0;for(int i =1;i<=5;i++){for(int j =1;j<=i;j++){System.out.print("*");}System.out.println();}}
}***************
扩展:打印等腰三角形
public class test10{public static void main(String[] args){int n = 5;for(int i =1;i<=n;i++){for(int j =1;j<=n-i;j++){System.out.print(" ");}for(int x =1;x<=2*i-1;x++){System.out.print("*");}System.out.println();}}
}
共同点:break和continue都可以控制循环,break和continue一旦运行其下的代码都不执行
不同点:break可以控制switch,break结束循环,代码从循环向下执行,continue结束本次循环,开始下一次循环,代码从循环起点重新判断循环条件
while循环:执行循环次数不确定,先判断后执行的循环
do-while循环:执行循环次数不确定,先执行后判断
for:执行次数确定,先判断后执行的循环