循环结构:程序当中总有一些代码需要反复执行的代码
基本上所有编程语言支持的循环包括三种:
for循环
while循环
do..while循环
for循环的语法结构:
for(初始表达式;布尔表达式;更新表达式){
//是需要重复执行的代码片段【循环体:有java语句构成】
}
执行原理:
初始表达式、布尔表达式、更新表达式都不是必须的,但两个分号是必须的。
初始化表达式最先执行,并且在整个for循环当中只执行一次,
布尔表达式必须是false或ture
for(int i=1;i<=10;i++){
System.out.printIn(i);
}for循环中的i仅限在for循环内部使用,不能在main方法作用域当中访问,
public class SwitchTest01{
public static void main(Sring[] args){
for(int i=1;i<=10;i++){
System.out.printIn(i);
}
//死循环
for(;;){
System.out.printIn("死循环");
//输出1-10中的奇数
for(int i=1;i<=10;i+=2){
System.out.printIn("i--->"+i);//1 3 5 7 9
}
//输出1-10中的偶数
for(int i=2;i<=10;i+=2)
{
System.out.printIn("i--->"+i)
}
for(int i=0;i<10;)//等同于:for(int i=0;i<10;i++)
{
System.out.printIn("i--->"+i);// 0 1 2 3 4 5 6 7 8 9输出的是满足条件的结果
i++;
}
for(int i=0;i<10;)
{
i++;
System.out.printIn("i--->"+i);//1 2 3 4 5 6 7 8 9 10输出的是更新的结果
}
}
}
}
for和if的嵌套:
public class SwitchTest01{
public static void main(Sring[] args){
for(int i=1;i<=100;i++){
//i%2==0偶数 i%2==1奇数 i%2!=0奇数
if(i%2!=0){
System.out.printIn(i);
//1到100之间的奇数之和
int sum=0;//sum应放在for循环
for(int i=1;i<=100;i+=2){
sum+=i;
}
System.out.printIn("sum="+sum);
}
}
}
for循环嵌套for循环:内层循环的变量名和外层循环中的变量名不能重名
public class SwitchTest01{
public static void main(Sring[] args){
for(int i=1;i<=10;i++){
for(int j=0;j<3;j++){
System.out.printIn(j);
}//结果是10个0 1 2
0 1 2
0 1 2
....
for(int i=0;i<10;i++){
for(int j=0;j<3;j++){
//0 1 2
//0 1 2
//0 1 2
for(int k=0;k<3;k++){
System.out.print(k);
//0 1 2
}
//结果:
//0 1 2
//0 1 2
//0 1 2
//0 1 2
//0 1 2
//0 1 2
...10个
}
}
}
}
使用for循环输出九九乘法表:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
...
9*1=9 9*2=18 ... ... ... ... ... ... 9*9=81
public class SwitchTest01{
public static void main(Sring[] args){
for(int i=1;i<=9;i++){//外循环循环9次
//i是行号
for(int j=1;j<=i;j++){//每行中所要乘的数
System.out.print(i + "*" + j + "=" + i*j + " ");
//换行
System.out.printIn();或
System.out.print("\n");
}
}
}
编写for循环找到1-100中的素数:素数又称质数,能够被1和自身整除,不能被其他数字整除
的数字
public class SwitchTest01{
public static void main(Sring[] args){
//判断7是不是素数
int i=7;
boolean isSuShu=ture;//【标记】,在java中比较常用,默认看成素数
for(int j=2;j<i;i++){
if(i%j==0){
isSuShu=false;
break;
}
}
System.out.rintIn(isSuShu ? i +"是素数" :i + "不是素数");
//1-100中的素数
for(int i=2;i<=100;i++){//外部代码负责取出每一个数字
//这里代码负责判断i是不是素数
boolean isSuShu=ture;
for(int j=2;j<i;i++){
if(i%j==0){
isSuShu=false;
break;
}
}
if(isSuShu){
System.out.printIn(i);
}
}
【统计】:
加入统计机制,8个换行
int count =0;
for(int i=2;i<=100;i++){//外部代码负责取出每一个数字
//这里代码负责判断i是不是素数
boolean isSuShu=ture;
for(int j=2;j<i;i++){
if(i%j==0){
isSuShu=false;
break;
}
}
if(isSuShu){
System.out.printIn(i);
count++;
if(count%8 ==0){
System.out.printIn();//表示换行
}
}
//可以对count求余数也可以用count==0
if(isSuShu){
System.out.printIn(i);
count++;
if(count==8){
System.out.printIn();//表示换行
count=0;
}
}
}
}