循环结构
while 循环
- 只要布尔表达式为true,循环就会一直执行
- 我们大多数情况是会让循环停止,所以需要一个让表达式失效的方式来结束循环
- 少部分情况是需要循环一直执行,比如服务器的请求响应监听等
- 循环条件一直为true就会造成无限循环(死循环),我们正常的业务编程中尽量避免死循环,因为这会影响程序性能或者造成程序卡死奔溃
- 思考:计算1+2+3+.....+99+100=?
package com.Structure;
public class While2 {
public static void main(String[] args) {
//计算1+2+3+...+99+100=?
int i = 0;
int sum = 0;
while(i<100){
i++;
sum+=i;
}
/**也可以写成这样
* while(i<=100){
* sum+=i;
* i++;
*/
System.out.println(sum);
}
}
do....while 循环
- while先判断后执行,dowhile是先执行后判断!
- do....while保证循环体至少被执行一次,这是两个循环的主要区别
do{
执行语句
}while(布尔表达式);
/
package com.Structure;
public class DoWhile1 {
public static void main(String[] args) {
//计算1+2+3+...+99+100=?
int i = 0;
int sum = 0;
do{
sum+=i;
i++;
}while(i<=100);
System.out.println(sum);
}
}
区别
package com.Structure;
public class DoWhile2 {
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);
}
}
输出:
说明while循环体就没有进入,直接在dowhile里面执行了一次。
for 循环(最重要的)
- 虽然所有循环结构都可以用while还有dowhile表示,但是Java提供了另一种语句——for循环,使一些循环结构变得更加简单
- for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
- for循环执行的次数事再执行前就确定的。
for(初始化;布尔表达式;更新){
代码语句
}
1.计算0-100之间的奇数和偶数的和
package com.Structure;
public class For2 {
public static void main(String[] args) {
//计算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);
}
}
2.用while或者for循环输出1-1000之间能被5整除的数,并且每行输出三个
package com.Structure;
import jdk.swing.interop.SwingInterOpUtils;
public class For3 {
public static void main(String[] args) {
//用while或者for循环输出1-1000之间能被5整除的数,并且每行输出三个
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();
}
}
//println 输出完会换行
//print 输出完不换行
}
}
3.打印九九乘法表
package com.Structure;
public class For4 {
public static void main(String[] args) {
// for (int i = 1; i <= 9; i++) {
// for (int j = i; j <= 9; j++) {
// System.out.print(i+"*"+j+"="+(i*j)+"\t");
// }
// System.out.println();
// }
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <=j ; i++) {
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
增强for循环
//for(声明语句:表达式)
//{
//代码句子
//}
package com.Structure;
public class For5 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义了一个数组
for (int i = 0; i < 5; i++) {
System.out.print(numbers[i]+"\t");
}
System.out.println();
System.out.println("==================");
//遍历数组的元素
for(int x:numbers){
System.out.print(x+"\t");
}
}
}
输出: