4-1-1for循环
For 循环 For循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整,比如加1或者减1 For(i=0;i<5;i=i+1){ System.out.p;rintln(i) } For(初始化;条件;单步动作){
} 1. 第一个部分是一个初始化,可以定义一个新的变量:int count=10 或者直接赋值:i=10. 2. 第二个部分是循环维持的条件。这个条件是先验的,与while循环一样,进入循环之前,首先要检验条件是否满足,条件满足才执行循环;条件不满足就结束循环。 3. 第三部分是步进,即每轮执行了循环体之后,必须执行的表达式。通常我们在这里改变循环变更,进行加或减的操作。
For=对于 for(count=10;count>0;count=count-1) 就读成:“对于一开始的count=10,当count>0时,重复做循环体,每一轮循环在做完循环体内语句后,使得count递减。 For==while For循环:for(初始动作;条件;每轮的动作){ } For中的每一个表达式都是可以省略的:for(;条件;)==while(条件)
空循环 For(i=0;i<10;i++); 大小括号中不能有;有了就变成空循环 For(i=0;i<10;i++) System.out.println(i) 强烈建议:只要是for语句,就一定跟上一对大括号
循环次数 For(i=0;i<n;i=i+1) 则循环的次数是n,而循环结束以后,i的值是n。 有固定次数:for 必须执行一次:do while 其他情况:while 4-1-2for循环 A=a+6 >> a+=6 A=a-6 >> a-=6 A=a*6 >> a*=6 A=a/6 >> a/=6 A*=b+6 >> a=a*(b+6) a/=b*6 >> a=a/(b*6) 4-2循环控制-1
I=i+1 >> i++
Int i=6 A=i++ >> a=6 i=7 A=++i >> a=7 i=7
Continue:跳过循环这一轮剩下的语句进入下一轮。 Break:跳出循环 Break:while,
do..while,for三种循环中都可使用break 素数:只能被1和自己整除的数,不包括一 package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { Scanner
in
= new
Scanner(System.in); int n=in.nextInt(); int isprime=0; for(int i=2;i<n;i++) { if(n%i==0) { isprime=-1; break; } } if(isprime==-1) { System.out.println("它不是素数"); } else { System.out.println("它是素数"); } } }
++i和++i在for中的大括号{}中值一样 package hello; import java.util.Scanner; public class Hello { public static void main(String[] args) { for(int i=2;i<5;++i) { System.out.println(i); } } }
在循环前可以放一个标号来标示循环:如 label:(独占一行) 带标号的break和continue对那个循环作用。4-2循环控制-2
package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { out: for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { System.out.println(j); // break; break out; } } } }
4-2循环控制-3 http://wenzhang.baidu.com/article/view?key=a62df80e24ada1bd-1424665430 逻辑运算的优先级: !高于&&高于||
4-3循环计算-1 F(n)=1+1/2+1/3+1/4+………+1/n
package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { Scanner
in=new Scanner(System.in); int n=in.nextInt(); double sum=0.0; for(int i=1;i<=n;i++) { sum+=1.0/i; } System.out.printf("%.2f",sum); } }
F(n)=1-1/2+1/3-1/4+………+1/n
package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { Scanner
in=new Scanner(System.in); int n=in.nextInt(); double sum=0.0; int sign=1; for(int i=1;i<=n;i++) { sum+=1.0/i; sign=-sign; } System.out.printf("%.2f",sum); } } F(n)=1-1/2+1/3-1/4+………+1/n
package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { Scanner
in=new Scanner(System.in); int n=in.nextInt(); double sum=0.0; int sign=1; for(int i=1;i<=n;i++) { if(i%2==1) { sum+=1.0/i; } else { sum-=1.0/i; } } System.out.printf("%.2f",sum); } }
4-3循环计算-2
求最大公约数的第一种算法,欧几里德算法
package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { Scanner
in=new Scanner(System.in); int a=in.nextInt(); int b=in.nextInt(); int oa=a; int ob=b; while(b!=0) { int r=a%b; System.out.println(a+","+b+","+r); a=b; b=r; } System.out.println(oa+"和"+ob+"的最大公约数是"+a); } }
求最大公约数的第二种算法
package hello;
import java.util.Scanner;
public class
Hello {
public static void main(String[] args) { Scanner
in=new Scanner(System.in); int a=in.nextInt(); int b=in.nextInt(); int gcd=1; for(int i=2;i<=a && i<=b;i++) { if(a%i==0 && b%i==0) { gcd=i; } } System.out.println(a+"和"+b+"的最大公约数是"+gcd); } } |
|