for循环
基本语法:
for (循环变量初始化1;循环条件2;循环变量迭代3) {
代码体4;
break;//执行到break跳出整个for循环
continue;//执行到continue跳出这次循环
}
循环顺序 :执行一次1,2,4,3,2,4,3 ……
注意事项
-
循环条件是返回的一个布尔值的表达式
-
for(;循环判断条件;)中的初始化和变量迭代可以写到其他地方,但是两边的分号不能省略
-
循环初始值,可以有多条初始化语句,但类型必须一样
-
循环变量迭代,也可以有多条语句,逗号分隔
int i = 2; 将初始变量放在for循环外,可以增大i变量的作用域
for(;i<=5;i++) {
System.out.println("hello,world");
}
练习
//求打印所有9的倍数;并将其个数统计,及总和
import java.util.Scanner;
public class text {
public static void main(String[] args) {
//定义变量number用来接收键盘值
Scanner scanner= new Scanner(System.in);
System.out.println("请输入一个数字");
int number = scanner.nextInt();
int s = 0;
int count = 0;
treble = 9; //treble是倍数
for(int i=1;i<=number;i++)
{
if(i % treble == 0)
{
System.out.println("i="+i);
s++;
count+=i;
}
}
System.out.println("s="+s);
System.out.println("count="+count);
}
}
//求出所有队伍对阵打乒乓的各种可能
import java.util.Scanner;
public class text {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
System.out.println("请输入最大值" );
int number = scanner.nextInt();
int count=0;
//for ( int i=0; i<(number/2+1); i++)
for ( int i=0; i < number; i++)
{
if (i<(number/2+1))
{
System.out.println(i + "+" + (number-i) + "="+number );
count++;
}
}
System.out.println("一共有" + count + "种可能" );
}
}
//九九乘法表
public class text {
public static void main(String[] args) {
System.out.println("\n ");
for( int i=1;i<10;i++)
{
for(int k=1;k<=i;k++)
{
System.out.print(k+"x"+i+"="+(k*i)+" ");
}
System.out.println("\n ");
}
}
}
//倒立九九乘法表
public class text {
public static void main(String[] args) {
System.out.println("\n ");
for( int i=9;i>0;i--)
{
for(int k=1;k<=i;k++)
{
System.out.print(k+"x"+i+"="+(k*i)+" ");
}
System.out.println("\n ");
}
}
}
while循环控制
基本语法:
循环变量初始化 1
while (循环条件2) {
循环体3;
循环变量迭代4;
}
流程:1 > 2 > 3 > 4 > 2 > 3 > 4
练习
//实现1-100,以内被3整除的数
public class text {
public static void main(String[] args) {
int i =1;
while(i<=100)
{
if(i%3 == 0) {
System.out.println(i);
}
i++;
}
}
}
do-while循环控制
基本语法:
循环变量初始化1
do{
循环体2;
循环变量迭代3;
}while(循环条件4);
执行顺序 1,2,3,4,2,3,4
多重循环控制
- 将一个循环体放入另一个循环中,就形成了嵌套循环。 for,while,do while 均可作为内外循环。
- 嵌套循环 就是将内层循环当成循环体,只有内层循环条件为false,结束内层循环,结束外层当前的一次循环;当外层条件还是T,则再进入内部循环进行循环,直到内部条件再次false,跳出内部,跳出外部当次循环。
- 设置外层循环次数位m次,内层为n次,则内部循环体实际需要执行m*n次
//统计3个班学生的平均值,各班及格人数
import java.util.Scanner;
public class text {
public static void main(String [] args) {
Scanner scanner= new Scanner(System.in);
double Sum=0;//三个班级成绩总和
for(int m=1;m<=3;m++) { // m 代表班级
double sum=0; //一个班级成绩总和
int count =0; //计数器
for(int i=1;i<6;i++) { // i 代表学生
System.out.println(m+"班的学生,请输入你的成绩");
double scores = scanner.nextDouble();//定义一个变量scores用于接收成绩
if(scores >=60) {
count++;
}
sum+=scores;
}
System.out.println(m+"班的平均成绩"+(sum / 5)+" 及格人数是"+count+"\n");
Sum += sum;
}
System.out.println("三个班级的平均成绩是"+(Sum / 15));
}
}
//打印金字塔
public class text {
public static void main(String [] args) {
//外循环控制行数,内部两个循环依次打印 空格+*
for( int i=1;i<=6;i++) { //假设i代表行数
for(int m=1;m<=6-i;m++) { //m控制空格数
System.out.print(" ");
}
for(int n=1;n<=2*i-1;n++) { //n控制*的个数
System.out.print("*");
}
System.out.println();
}
}
}
//打印空心金字塔
public class text {
public static void main(String [] args) {
int totalLevel=6;//层数,先死后活
//外循环控制行数,内部两个循环依次打印 空格+*
for( int i=1;i<=totalLevel;i++) { //假设i代表行数
for(int m=1;m<=totalLevel-i;m++) { //m控制空格数
System.out.print(" ");
}
for(int n=1;n<=2*i-1;n++) { //n控制*的个数
if(( n==1 || n==2*i-1) || i==totalLevel){
System.out.print("*");
}
else
System.out.print(" ");
}
System.out.println();
}
}
}