while循环
循环结构的特点:
1、循环变量初始化
2、循环条件(先判断再执行)
3、循环操作
while基本语法
while (循环条件) {
循环操作
}
例
public class cycle1{
public static void main(String[] args){
int i = 1; //循环变量初始化
while (i<=10000){ //循环的判断条件
System.out.println("爱你一万年------"+i);
i++; //循环体中改变循环变量的值
}
}
}
如何使用循环:
1、找循环结束的地方
2、找循环变量的初始值
3、找循环变量的改变规律
例
// 1~100的累加求和
public class Cum1_100{
public static void main(String[] args){
int i=1;
int sum=0;
while (i<=100) {
sum=sum+i;
System.out.println("第"+i+"次和:"+sum);
i++;
}
System.out.println("总和:"+sum);
}
}
例:
//录入成绩,求和
import java.util.Scanner;
public class score{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("请输入学生人数");
int students_all = in.nextInt();
int i=1;
int score_all=0;
while (i<=students_all) {
System.out.println("请输入第"+i+"个学生的成绩");
int score1 = in.nextInt();
score_all = score_all+score1;
i++;
}
int avg = score_all/students_all;
System.out.println("平均成绩:"+avg);
}
}
例
2006年某市学员8万人毕业,每年增长25%,请问按此增长速度,到哪一年学员人数达到20万人?
public class people1{
public static void main(String[] args){
int people = 80000;
int year = 2006;
while (people <= 200000){
people = people+(people/100*25);
year++;
System.out.println("到"+year+"年"+"人数:"+people);
}
System.out.println("---------------------------");
System.out.println("到"+year+"年"+"人数达到20万");
}
}
例
import java.util.*;
public class guess_number1 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("请输入一串数字");
int num1 = in.nextInt();
while(num1!=0){
int num_end = num1%10;
System.out.print(num_end);
num1 = num1/10;
}
System.out.print("\n数值被颠倒");
}
}
do-while循环
特点:先执行,再判断
do {
循环操作 // 先执行一遍循环操作
} while (循环条件); //符合条件,循环继续执行;否则,退出循环
例
import java.util.Scanner;
public class do_while1{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String answer;
do{
System.out.println("唱歌");
System.out.println("演唱TFBOYS的大梦想家");
System.out.println("这首可以不?(y/n):");
answer = in.next();
} while (!answer.equals("y"));
System.out.println("一个一个梦飞出了天窗");
}
}
例
// 成语接龙 简单版
import java.util.Scanner;
public class do_while2{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String answer;
String list_answer = "";
int i = 0;
System.out.println("成语接龙");
do{
System.out.println(" ");
System.out.println("----分隔符----");
answer = in.next();
list_answer = list_answer + answer+"\n";
i = i+1;
} while (!answer.equals("q")); //q退出
System.out.println("---start---"); //此行以下输出结果
System.out.println(list_answer);
System.out.println("---end---");
if (i>=8) { //成语个数大于8
System.out.println("共"+(i-1)+"个---"+"胜利在望,你好棒");
} else {
System.out.println("共"+(i-1)+"个---"+"再接再厉,即使是游戏");
}
}
}
while循环和do-while循环的区别
语法不同:
//while 先判断,再执行
while (循环条件) {
循环操作
}
//do-while 先执行,再判断
do{
循环操作
} while(循环条件);
for循环
特点:循环次数固定
基本语法
for(参数初始化; 条件判断; 更新循环变量){
循环操作
}
例
for (int i=0; i<100; i++){
System.out.println("I CAN DO IT ");
}
例:计算n个月的月薪
import java.util.Scanner;
public class for_1 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int sum = 0;
System.out.println("请输入你需要计算的月薪次数:");
int times = in.nextInt();
for (int i=1; i<=times; i++){
System.out.println("请输入第个"+i+"月的月薪:");
int salary = in.nextInt();
sum = sum+salary;
}
System.out.println("你的平均月薪是:"+sum/times);
}
}
例:求1+…+n的和
import java.util.Scanner;
public class sum_1 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = input.nextInt();
int sum = 0;
if (n>0){
for (int i=1; i<=n; i++){
sum = sum+i;
}
System.out.println("1+...+"+n+"="+sum);
} else {
System.out.println("输入的数据有误");
}
}
}
例:加法表
import java.util.Scanner;
public class sum_加法表 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = input.nextInt();
for (int i=1,j=n; i<=n; i++,j--){ //注意分号与逗号的区别,同一表达式之间用逗号,不同表达式用分号
System.out.println(i+"+"+j+"="+(i+j));
}
}
}
例:电脑随机产生100次0-100的随机数,求平均
import java.util.*;
public class sum_random {
public static void main(String[] args){
Random num = new Random();
int sum=0;
for (int i=0; i<100; i++) {
int number = num.nextInt(101);
System.out.println("第次"+(i+1)+"的随机数:"+number);
sum = sum+number;
}
System.out.println("平均:"+sum/100);
}
}
例:跑5000米,思路
for (int i = 0; i<10; i++){
System.out.println("跑400米");
if (不能坚持){
break; //退出比赛
}
}
import java.util.*;
public class for_break {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
for (;;){
System.out.println("是否继续跑完");
String answer = in.next();
if (answer.equals("是")) {
System.out.println("加油噢");
} else {
System.out.println("不跑了");
break;
}
}
}
}
例:
import java.util.*;
public class while_break {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while (true){
System.out.println("你爱我吗?");
String answer = in.next();
if (answer.equals("爱")) {
System.out.println("终于等到你");
break;
} else{
System.out.println("故事还不够感动天地,那咱们继续");
System.out.println();
}
}
}
}
continue
特点:只能用在循环里
作用:跳过循环体中剩余的语句而执行下次循环
while (...){
...
continue;
...
...
}
例:
import java.util.Scanner;
public class continue_psw {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while (true){
System.out.println("请输入密码");
int password = in.nextInt();
if (password==921) {
System.out.println("密码正确");
break;
} else {
continue;
}
}
}
}
break和continue的区别
break可以用于switch结构和循环结构
continue只能用于循环结构
break终止某个循环,程序跳转到循环外的下一条语句
continue跳出本次循环,进入下一次循环
循环嵌套
public class while_循环嵌套 {
public static void main(String[] args){
int i = 1;
while (i<=7){
System.out.println("又是神奇的一天");
int j = 1;
while (j<=3){
System.out.println("本周的第"+i+"天的第次"+j+"充电");
j++;
}
i++;
}
}
}