循环语句
For循环
基本语法
for(循环变量初始值;循环条件;循环变量迭代){
代码块;
}
执行流程
注意事项
- for循环的初始化变量,循环迭代值,可以放在其他地方。但是分号不能省略。例:for(;循环判断条件;)
- 初始值可以定义在循环体之前,迭代值可以写在循环体之内。
- for(;;)死循环
- 循环初始值可以有多条赋值语句,但是类型要求相同中间使用逗号分隔,循环迭代值也可以有多个值,用逗号分隔
练习
public class For{
public static void main(String[] args) {
int sum = 0;
//打印1-100的整数
for (int i = 1 ; i <= 100 ; i++) {
//判断是否能被9整除
if (i % 9 == 0) {
System.out.println(i);
//累加其和
sum += i;
}
}
System.out.println("总和为:"+sum);//594
}
}
public class For{
public static void main(String[] args) {
/*输出两个数加起来等于5的所有情况
*/
int sum = 0;
for (int i = 0; i <= 5 ; i++ ) {
for (int j = 0 ; j <= 5 ; j++) {
sum = i + j;
if(sum == 5){
System.out.println("============");
System.out.println(i+"+"+j+"="+sum);
}
}
}
}
}
while循环
基本语法
循环变量初始化;
while(条件){
循环体;
循环变量迭代;
}
执行流程
注意事项
- 循环条件返回是一个boolean值
- while循环是先判断后执行语句
练习
public class For{
public static void main(String[] args) {
/*输出1-100能被3整除的数字*/
int i = 1;
while (i <= 100) {
if (i % 3 == 0) {
System.out.println(i);
}
/*迭代值放在if后面,否则无法输出结果,就是死循环*/
i++;
}
}
}
public class For{
public static void main(String[] args) {
/*40-200之间的偶数*/
int i = 40;
while (i <= 200) {
if (i % 2 == 0) {
System.out.println(i);
}
/*迭代值放在if后面,否则无法输出结果,就是死循环*/
i++;
}
}
}
do..while循环
基本语法
循环变量初始化
do{
循环体;
循环变量迭代
}while(循环条件);
执行流程
注意事项
- do while 是关键字
- 也有循环四要素,但是位置不同
- 先执行一次循环,后判断,一定会执行一次
- 最后有一个分号
练习
public class For{
public static void main(String[] args) {
int i = 1;
int count = 0;
do{
if (i % 5 == 0 && i % 3 != 0) {
System.out.println(i);
count++;
}
/*迭代值放在if后面,否则无法输出结果,就是死循环*/
i++;
}while (i <= 200);
System.out.println("满足条件的个数是"+count);
}
}
import java.util.Scanner;
public class For{
public static void main(String[] args) {
/*
问对方是否还钱,(y/n)如果不还钱接着打(n)还钱就不打了
*/
/*接收回答*/
Scanner input = new Scanner(System.in);
char answer = ' ';
do{
System.out.println("打");
System.out.println("还钱吗?(y/n)");
answer = input.next().charAt(0);
System.out.println("他的回答是"+ answer);
}while (answer != 'y');
}
}
双层循环,嵌套循环(难点,重点)
注意事项
- 循环嵌套最好不要超过三层,可读性会变得很差
- for while do..while都可以作为外层循环和内层循环
练习
import java.util.Scanner;
public class For{
public static void main(String[] args) {
/*输出99乘法表*/
int count = 0;
int k = 0;
for (int i = 1 ; i <= 9 ; i++ ) {
/*j<=i 控制每行的输出个数*/
for (int j = 1; j <= i ; j++ ) {
count = i * j;
/*输出后不换行*/
System.out.print(i+"*"+j+"="+count +"\t");
}
/*每行输出之后换行*/
System.out.println();
}
}
}
import java.util.Scanner;
public class For{
public static void main(String[] args) {
/*
统计三个班级的成绩情况,每个班级有5个学生
求出各个班级的平均分和所有班级的平均分
统计三个班及格人数,每个班5人
*/
double sum = 0;
double avg = 0;
double sum1 = 0;
double sumAvg = 0;
int passNum = 0;
Scanner input = new Scanner(System.in);
for (int i = 1; i <=3 ; i++ ) {
for (int j = 1; j <=5 ; j++ ) {
System.out.println("请输入第"+ i+"个班级的第" + j + "个学生的成绩");
double score = input.nextDouble();
sum += score;
if (score > 60) {
passNum++;
}
}
avg = sum / 5.0;
sum1 += sum;
sum = 0;
System.out.println("第"+ i +"班级的平均分是" + avg);
sumAvg = sum1 / 15.0;
}
System.out.println("所有班级的平均分是" + sumAvg);
System.out.println("通过的人数是" + passNum);
}
}
import java.util.Scanner;
public class For{
public static void main(String[] args) {
/*
打印空心金字塔
*
* *
* *
* *
*********
*/
for (int i = 1; i <= 5 ; i++ ) {
//打印*之前先打印空格
for (int k = 1; k <= 5-i ; k++ ) {
System.out.print(" ");
}
for (int j = 1 ; j <= (2*i)-1 ; j++ ) {
/*第一个位置或最后一个位置输出*号或最后一层输出*号*/
if (j == 1 || j ==(2*i)-1 || i == 5) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
//每行打印结束换行
System.out.println();
}
}
}
标签:语句,int,void,System,while,循环,public
From: https://www.cnblogs.com/ygcDiary/p/17628855.html