package day03; /* * 实现 * sum = 1+2+3+...+100 */ public class Demo17 { public static void main(String[] args) { int sum = 0; for(int i=1;i<=100;i++){ sum = sum + i; // sum += i; } System.out.println(sum); } }
package day03; /* * for循环语句 * 1->(2->3->4)->(2->3->4)->(2->3->4)->(2->3->4)->2->5 */ public class Demo16 { public static void main(String[] args) { //i i<4 //0 true //1 true //2 true //3 true //4 false for(int i=0/*1*/;i<4/*2*/;i++/*4*/){ System.out.println(i);/*3*/ } System.out.println("bye");/*5*/ } }
package day03; /**PI**/ public class Demo18 { public static void main(String[] args) { double sum = 0; for(int i=3;i<10000;i+=4){ sum += 1.0/i-1.0/(i+2); } double pi = 4*sum; System.out.println(pi); } }
package day04; /* * for语句中3个表达式可以适当的省略不写 */ public class Demo05 { public static void main(String[] args) { //变量的作用域,越小越好!尽量在循环内部定义变量 //i变量的作用域,在for内部有效 for(int i=1;i<=10;i++){ System.out.println(i); } //i变量的作用域,是main方法中有效 int i=1; for(;i<=10;i++){ System.out.println(i); } System.out.println(i);//11 循环是在不满足条件时候结束的! } }
package day04; /* * for循环与while循环 * for循环可以与while循环互换使用。达到相同的目的 */ public class Demo06 { public static void main(String[] args) { int i=1;//此时就相当于while循环 for(;i<=10;){ System.out.println(i++); } System.out.println(i); i = 1; while(i<=10){ System.out.println(i++); } System.out.println(i); } }
package day04; /* * sum = 0 9 + 99 + 999+... * num = 9 99 999 * i = 1 2 3 4 * num = 0 9 99 999 * num = num*10 + 9 */ public class Demo07 { public static void main(String[] args) { long sum=0;//和 int i = 1;//index的缩写,序号 long num=0;//number缩写 // for(;i<=11;){//等价 while(i<=11){ num = 10*num+9; System.out.println(num);//跟踪语句 sum+=num; i++;//运行结束i为12 } System.out.println(i); System.out.println(sum); } }
package day04; import java.util.Scanner; /* * 注意:比较字符串是否相等必须使用equals方法!不能使用== * "1".equals(cmd)比cmd.equals("1")要好 */ public class Demo08 { public static void main(String[] args) { Scanner console = new Scanner(System.in); while (true) {//死循环 for(;;)与while(true)等价! System.out.println("选择功能: \n1.查看全部 \n2.删除" + "\n3添加 \n0退出 \n请选择:"); String cmd = console.nextLine(); if("1".equals(cmd)){ System.out.println("查看全部"); }else if("0".equals(cmd)){ System.out.println("亲,bye"); break;//break:打断!结束当前循环 }else{ System.out.println("亲,命令错误"); } } } }
package day04; import java.util.Scanner; /* * do-while语句 */ public class Demo13 { public static void main(String[] args) { Scanner console = new Scanner(System.in); char c;//变量作用域问题,需在外面声明变量 String str; do{ System.out.println("输入一个数: "); str = console.nextLine(); c = str.charAt(0);//这个字符串索引0的字符 }while(c<'0'||c>'9'); System.out.println(str);//输出字符串 int n = Integer.parseInt(str);//将"56"->int 56 System.out.println(n); } }
循环控制
for 最常用,甚至只用这一个可以解决任何循环问题
for最常用在与次数有关的循环处理
while
很常用,用在循环时候要先检查循环条件再处理循环体
用在与次数无关的情况。
如果不能明确结束条件时候,先使用while(true),在适当条件使用break结束循环。
while(true){
//...
//...
if(是否结束){
break;
}
}
do while在循环最后判断是否结束的循环
如:使用while(true)实现循环时候,结束条件break在while循环体的最后,就可以使用do while。
do while的结束条件经常是“否定逻辑条件”,不便于思考业务逻辑。使用时候要注意。可以利用while(true)+break替换
循环的替换
while(布尔表达式){}等价for(;布尔表达式;){}
while(true){}等价for(;;)
while(true){}+break 替换 do{}while(布尔表达式);
for(;;)+break替换do{}while(布尔表达式);