Java流程控制-循环结构(while\do while\for\增强for)
循环结构
while 循环
int i=0;
while (i<100){
i++;
System.out.println(i);
}
例子:计算1+2+3+.....+100,用循环语句
//计算1+2=3....+100=?
int i =0;
int sum=0;
while (i<=100){
sum=sum+i;
i++;
}
System.out.println(sum);
do while循环
int i=0;
int sum=0;
do {
sum=sum+i;
i++;
}while(i<=100);
System.out.println(sum);
//while先判断后执行,do while先执行后判断
for循环
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
快捷方式:100.for
int a=1;//初始化条件
while (a<=100){//条件判断
System.out.println(a);//循环体
a+=2;//迭代
}
System.out.println("while循环结束!");
//初始化;条件判断;迭代
for(int i=1;i<=100;i++){
System.out.println(i);//循环体
}
System.out.println("for循环结束");
注意://死循环
for( ; ; ){
}
练习1:计算0-100之间奇数和、偶数和
思路:分别把奇数和偶数挑出来,分别求和
int oddsum=0;//意思是奇数和
int evensum=0;//意思是偶数和
for (int i = 0; i < 100; i++) { //100.for快捷方式
if(i%2!=0){ //i除以2的余数不等于0,奇数
oddsum+=i;//oddsum=oddsum+i
}else{
evensum+=i;
}
}
System.out.println("奇数的和:"+oddsum);
System.out.println("偶数的和:"+evensum);
练习2:用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");// \t转义字符相当于键盘上tab空格键
}
if(i%15==0){//换行的意思 每满3*5换行
System.out.print("\n");//换行字符
}
//println:输出完会换行
//print:输出完不会换行
打印九九乘法表
public static void main(String[] args) {
for (int i = 1; i <=9 ; i++) {
for (int j = 1; j <=i ; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println("\n");
}
}
增强for循环(先了解)
int[]numbers={10,20,30,40,50};//定义了一个数组
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
System.out.println("___________________________");
//增强for循环:遍历数组的元素
for(int x:numbers){
System.out.println(x);
}
break continue
- break可用在任何循环的主体部分,由于强行退出循环,也可以用在switch语句。
- continue用于循环语句中,终止当次循环过程,跳过剩余语句,直接进行下一次循环条件判断。
- 标签:后面跟一个冒号的标识符 label:
打印三角形
for (int i = 1; i <= 5; i++) {//初始值,循环条件(一旦不在范围就跳出循环)
for (int j = 5; j >= i; j--)//建立1号图形 j为什么要大于等于i,因为第一次循环的时候i=1输出5个空格,第二次i=2输出4个空格,54321这样递减,5>1,5>2,5>3,5>4,5>=5
System.out.print(" ");
for (int j = 1; j <=i; j++)//建立2号图形,12345分别递增*号个数,j<=i满足条件才会打印*号,j>i的时候跳出循环,例如第一次循环时候j=2大于i=1了要让他换行
System.out.print("*");
for(int j = 1; j < i; j++)//建立3号图形,3号图形没有在第一行输出,所以要在第一次大循环中掐断它,让它在第二次大循环中输出, 所以这次的判断条件为 j < i 去掉了等于。
System.out.print("@");
System.out.println();
//大神解析:https://www.runoob.com/w3cnote/java-print-the-triangle.html
//先画出拆分的三个图形再解析代码第一排i=1,第二排i=2依次递增,第五排i=5.满足循环条件就打印*或者@,从这方面理解.
}
}
}

浙公网安备 33010602011771号