指满足一定条件,反复多次执行的代码。
循环结构分为两部分,为循环条件和循环体,注意不能进入死循环
二、while循环 1.结构 while(循环条件){
//循环执行代码
}
该循环先判断条件,在进入循环语句,对变量进行操作
2.举例public class Work {
public static void main(String[] args) {
int sum=0;
int i=1;
while(i<=5) {
sum=sum+i;
i++;
}
System.out.println(sum);
//sum=0
//i=1 1<=5
//sum=0+1
//i=2 2<=5
//sum=0+1+2
//i=3 3<=5
//sum=0+1+2+3
//i=4 4<=5
//sum=0+1+2+3+4
//i=5 5<=5
//sum=0+1+2+3+4+5
//i=6 6<=5 false 循环结束
}
}
三、do···while循环
1.结构
do{
//循环执行代码
}while(循环条件);
初始变量先执行循环代码,然后判断是否符合条件。
2.举例public class Work {
public static void main(String[] args) {
//1+2+...+100求和
int i=1;
int sum=0;
do {
sum=sum+i;
i++;
}while(i<=100);
System.out.print("答案="+sum);
}
}
四、for循环
1.结构
for(初值;判断式;循环式){
//循环执行代码
}
该循环把变量初值、满足条件、循环式放在一起,{}里为循环的代码,比while结构更为简洁,是常用的语句。
补充:break 结束循环
continue 结束本次循环。本次循环体中,continue后面的语句不执行,继续判断循环条件,如果有条件满足
int sum=0;
for(int i=1;i<=100;i++) {
System.out.println("i="+i);
sum+=i;
}
System.out.println("答案="+sum);
五、拓展
1.计算100以内偶数和
public class Work {
public static void main(String[] args) {
int i=2;
int sum=0;
//第一种方式,i从2开始,然后在满足<=100的情况下,执行加和运算代码,
//执行完毕,i+2赋值给i,继续循环执行代码。
// while(i<=100) {
// sum=sum+i;
// i+=2;
// }
//第二种方式,先判断i满足<=100,然后在有模运算验证是否为偶数
//满足条件就加和,不满足就不执行,i++把100以内的所有数都过循环条件
while(i<=100) {
if(i%2==0) {
sum=sum+i;
}
i++;
}
System.out.print("答案="+sum);
}
}
2. 摄氏温度-华氏温度对照表
条件:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,且对照表中的条目不超过10条。
转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32
import java.util.Scanner;
public class Work {
public static void main(String[] args) {
int s=0; //摄氏温度
int h; //华氏温度
int count=1; //对照条目10的计数变量
System.out.println("摄氏度"+"t"+"华氏度");
for(s=0;s<=250;s+=20) {
if(count<=10) {
h=(int)(s*9/5.0+32);
System.out.println("第"+count+"次温度转换");
System.out.println(s+"t"+h);
count++;
}else {
break;
}
}
System.out.println("数据如上");
}
}
3.猜数字
电脑产生随机数(不超过100)。用户输入,猜错了给出猜大了、猜小了提示,猜对了结束。
import java.util.Scanner;
public class Work {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//自动输出随机数
int random=(int)(Math.random()*100);
//此行可以不要,输出是为对照
System.out.println(random);
int num;
do {
System.out.println("输入抽奖号码");
num=scanner.nextInt();
if(num==random) {
System.out.println("猜对");
}else if(num>random) {
System.out.println("猜大");
}else {
System.out.println("猜小");
}
}while(num!=random);
System.out.println("游戏结束");
}
}
4.限定次数猜完,给出提示
import java.util.Scanner;
public class Work {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//输出随机数,表示中奖号码
int random=(int)(Math.random()*100);
System.out.println(random);
//计数,表示猜测次数
int count=1;
//因为不相同情况多,所以布尔值默认为false
boolean guess=false;
int num;
do {
count++;
System.out.println("输入抽奖号码");
num=scanner.nextInt();
if(num==random) {
System.out.println("猜对");
guess=true;
}else if(num>random) {
System.out.println("猜大");
}else {
System.out.println("猜小");
}
}while(num!=random && count<=3);//
if(guess) {
System.out.println("猜对");
System.out.println("游戏结束");
}else {
System.out.println("很遗憾,机会用完");
}
}
}
5.质数判断
import java.util.Scanner;
public class Work {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("输入一个数");
int num=scanner.nextInt();
int i;
boolean div=true;
//当一个数除以1和自身外任何数都不为0时,就是质数
//进入该循环的数都不是质数,布尔值为false
//2是质数,输入时条件不满足,直接跨过循环
for(i=2;i<=num-1;i++) {
if(num%i==0) {
div=false;
break;
}
}
if(div) {
System.out.println("质数");
}else {
System.out.println("不是质数");
}
}
}
6.成绩录入
import java.util.Scanner;
public class Work11 {
public static void main(String[] args) {
//循环录入某学生5门课的成绩并计算平均分,
//如果某分数录入为负,停止录入并提示录入错误,不再计算平均分
Scanner scanner=new Scanner(System.in);
int cj,i=1;
int sum=0;
//判断成绩小于零的情况,正常情况成绩大于0进入判断,故设为true
boolean zero=true;
do {
System.out.println("输入第"+i+"科成绩");
cj=scanner.nextInt();
if(cj<0) {
zero=false;
break;
}else {
sum=cj+sum;
}
i++;
}while(i<=5);
if(zero) {
System.out.println("总成绩="+sum);
System.out.println("平均分="+sum/5);
}else {
System.out.println("输入成绩出错");
}
}
}
————勤劳解决温饱,知识改变命运,继续坚持!!!



