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(布尔表达式);