1.实现整数反转?
public class Huiwen {
public static void main(String[ ] args) {
int val = 12345;
int r_digit;
System.out.print("反转后的整数是:");
while(val!=0){
r_digit = val %10;
System.out.print(r_digit);
val = val /10;
}
}
}
2为什么使用for循环?
for比while更简洁
3.什么是for循环?
for( 表达式1;表达式2 ;表达式3){
循环操作 ;
}
执行顺序:先1再2,循环操作,然后3,然后2 ,然后再循环操作,直到判断发生错误跳出循环
for循环举例:循环输入某同学结业考试的5门课成绩
import java.util.Scanner;
public class Case2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
// 项目:循环输入5门课程成绩
String n=null;
double s=0;
double z=0;
double p=0;
System.out.println("输入学生姓名:");
n=input.next();
for(int i=0;i<5;i++){
System.out.println("请输入第"+(i+1)+"个学生的成绩");
s=input.nextDouble();
z=z+s;
}
p=z/5;
System.out.println("平均分"+p);
}
}
心得:变量有学生名字、总分、单科分数、平均分
4.For循环特点?
循环次数固定
举例:加法表
import java.util.Scanner;
public class Case3 {
public static void main(String[] args){
// 项目:加法表
for (int i = 0,j=6; i<7; i++,j--) {
System.out.println(i+"+"+j+"=6");
}
}
}
心得:多个变量.
5.for循环常见问题?
1.变量 i 没有初始化 例如:for(;i<10;i++)
2.编译正确,但是缺少循环条件,造成死循环 例如:for(int i=0;;i++)
3.编译通过,但是循环变量的值无变化,造成死循环 例如:for(int i=0;i<10;)
4.表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环 例如:for(;;)
练习:求1~100之间不能被3整除的数之和
import java.util.Scanner;
public class Case4 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//1-100之间不能被3整除的数之和
int h=0;
for(int i=1;i<=100;i++){
if(i%3!=0){
h=i+h;
}
}
System.out.println(h);
}
}
6.为什么需要break语句?
遇到break,立即跳出语句(前提是在循环语句和switch)
7.什么是break语句?
作用:改变程序控制流
用于do-while、while、for中时,可跳出循环而执行循环后面的语句
如何使用break语句?
举例:循环录入,录入为负,停止录入。
import java.util.Scanner;
public class Case5 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
// 项目:循环输入5门课程成绩 遇到负数的时候停止
String n=null;
double s=0;
double z=0;
double p=0;
int k=0;
System.out.println("输入学生姓名:");
n=input.next();
for(int i=0;i<5;i++){
System.out.println("请输入第"+(i+1)+"个学生的成绩");
s=input.nextDouble();
k++;
if(s<0){
break;
}
z=z+s;
}
if(k==5){
p=z/5;
System.out.println("平均分"+p);
}else{
System.out.println("对不起,成绩不可以为负数.");
}
}
}
8.为什么需要continue语句?
遇到continue,进行下一次的循环
9.什么是continue语句?
continue :只能用在循环里
10.continue 作用?
跳过循环体中剩余的语句而执行下一次循环
11.如何使用continue语句?
举例:统计超过80分的人数
import java.util.Scanner;
public class Case6 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//项目:计算班级超过80分以上的学生人数比例
double s=0; //分数
int c80=0; //80以上
int e=0; //学生人数
System.out.println("输入班级总人数:");
e=input.nextInt();
for(int i=0;i<e;i++){
System.out.print("请输入第"+(i+1)+"个学生的成绩:");
s=input.nextDouble();
if(s<80){
continue;
}
c80++;
}
System.out.println("80分以上的学生人数:"+c80);
System.out.println("80分以上的学生所占比例为:"+(c80/(s*0.01))+"%");
}
}
练习:循环录入会员信息
import java.util.Scanner;
public class Case7 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("MyShopping管理系统>客户信息管理>添加客户信息");
//循环录入会员信息
int hyh=0;
String hysr=null;
double hyjf=0;
for (int i = 0; i < 3; i++) {
System.out.println("请输入会员号(<4位整数>)");
hyh=input.nextInt();
if(!(hyh<=9999&&hyh>=1000)){
continue;
}
System.out.println("请输入会员生日(<用2位整数表示>)");
hysr=input.next();
System.out.println("请输入会员积分:");
hyjf=input.nextDouble();
}
System.out.println("您录入的会员信息是:"+" " +hyh+" "+ hysr+ +hyjf);
System.out.println("程序结束");
}
}
练习:验证用户登录信息(登陆3次不成功)
import java.util.Scanner;
public class Case8{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//登陆3次不成功
String userName = "admin";
String password = "admin";
int k=3;
for (int i = 0; i < 3; i++) {
System.out.print("请输入用户名:");
String uname=input.next();
System.out.print("请输入密码:");
String pwd =input.next();
if(!(uname.equals(password)&&pwd.equals(userName))){
k--;
System.out.println("您还有"+k+"次机会");
continue;
}else{
System.out.println("登陆成功!");
break;
}
}
System.out.println("对不起,3次机会已用完");
}
}
12.循环结构有哪些?
while 、do-while、for
无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分
1. while 循环:先判断,再执行
2.do-while循环:先执行,再判断
3.for循环:先判断,再执行
13.二重循环?
举例:
import java.util.Scanner;
public class Case9 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
for (int bj = 1; bj <= 3; bj++) {
double cj=0;
double pj=0;
double zf=0;
System.out.println("请输入第"+bj+"个班级的成绩");
for (int xy = 1; xy <= 4; xy++) {
System.out.print("请输入第"+xy+"个学员的成绩:");
cj=input.nextDouble();
zf=cj+zf;
}
pj=zf/4;
System.out.println("第"+bj+"个班级的平均成绩"+pj);
}
}
}
心得:外层循环控制班级,内层循环控制成绩
作业:九九乘法表
public class zuoye2 {
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+" ");
}
System.out.println();
}
}
}
作业: 5!+4!+...+1!
import java.util.Scanner;
public class zuoye3 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
// 5!+4!+...+1!
System.out.println("请输入一个数字:");
int num=input.nextInt();
int sum=0;
for (int j = 1; j <=num; j++) {
int jiecheng=1;
for (int i = 1; i <= j; i++) {
jiecheng=jiecheng*i;
}
sum=sum+jiecheng;
}
System.out.println("阶乘的和是"+sum);
}
}
作业:三角形
import java.util.Scanner;
public class zuoye1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//三角形
System.out.println("请输入行数");
int row=input.nextInt();
for (int i = 0; i < row+1; i++) {
for (int j = 0; j < row-i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
练习:在二重循环中使用continue
import java.util.Scanner;
public class Case1 {
public static void main(String[] args) {
{
//计算3个班级大于85分以上的人数
Scanner input=new Scanner(System.in);
int rs85=0; //超80
double cj=0; //成绩
for (int bj = 1; bj <= 3; bj++) {
double pj=0; //均分
double zf=0; //总分
System.out.println("请输入第"+bj+"个班级的成绩");
for (int xy = 1; xy <= 4; xy++) {
System.out.print("请输入第"+xy+"个学员的成绩:");
cj=input.nextDouble();
zf=cj+zf;
if (cj<85) {
continue;
}
rs85++;
}
pj=zf/4;
System.out.println("第"+bj+"个班级的平均成绩"+pj);
}
System.out.println("大于85的人数"+rs85);
}
}
}