知识点:
1. 循环结构---while循环
2. 循环结构---do...while();循环
3. 循环结构---for循环
编程中的循环是指在满足条件下重复的去执行某些操作,直到条件不满足。选择结构只做一次判断,条件为true执行,为false不执行,而循环结构在满足条件完成循环操作之后,如果没有遇到break,都会回到条件继续判断条件是否依然满足,如果依然满足,继续执行循环体操作,以此类推,如果不满足就结束循环。
结构:
while(条件)-----条件为true的时候执行循环体中的操作
{
循环体
}
特点:先判断,再执行
结构:
do
{
循环体
}while(条件);
案例:三次登录
程序运行:
请输入用户名:admin
请输入密 码:admin
登录失败,用户名或密码错误!
您还有两次机会,请问要继续吗?(y/n)
如果是n
提示:谢谢使用,退出当前系统
如果是y
请输入用户名:admin
请输入密 码:admin
登录失败,用户名或密码错误!
您还有一次机会,请问要继续吗?(y/n)
y
请输入用户名:admin
请输入密 码:admin
登录失败,用户名或密码错误!
三次登录均失败,退出当前系统
登录成功,欢迎用户admin
for(初始值;条件;初始值变更)
{
循环体
}
1 3 1
2 2 3
3 1 5
4 0 7
*
***
*****
*******
*****
***
*
行数 空格数 *数量
1 1 5
2 2 3
1. 循环结构---while循环
2. 循环结构---do...while();循环
3. 循环结构---for循环
概念:循环
无论是在现实生活中还是科学技术中,循环都是伴随着我们的生活一起的。循环简单来说就是重复,这种重复有的是有限的,有的是无限的编程中的循环是指在满足条件下重复的去执行某些操作,直到条件不满足。选择结构只做一次判断,条件为true执行,为false不执行,而循环结构在满足条件完成循环操作之后,如果没有遇到break,都会回到条件继续判断条件是否依然满足,如果依然满足,继续执行循环体操作,以此类推,如果不满足就结束循环。
一、循环结构---while循环
循环while:是指当满足条件的时候,重复执行某些操作,直到不满足条件就跳出循环结构:
while(条件)-----条件为true的时候执行循环体中的操作
{
循环体
}
特点:先判断,再执行
二、循环结构---do...while();结构
特点:先执行,再判断结构:
do
{
循环体
}while(条件);
案例:三次登录
程序运行:
请输入用户名:admin
请输入密 码:admin
登录失败,用户名或密码错误!
您还有两次机会,请问要继续吗?(y/n)
如果是n
提示:谢谢使用,退出当前系统
如果是y
请输入用户名:admin
请输入密 码:admin
登录失败,用户名或密码错误!
您还有一次机会,请问要继续吗?(y/n)
y
请输入用户名:admin
请输入密 码:admin
登录失败,用户名或密码错误!
三次登录均失败,退出当前系统
登录成功,欢迎用户admin
import java.util.Scanner;
public class Demo03
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int num=3;
String an=null;
do
{
System.out.println("请输入用户名:");
String username=input.next();
System.out.println("请输入密 码:");
String password=input.next();
if(username.equals("admin")&&password.equals("123456"))
{
System.out.println("登录成功,欢迎用户"+username);
break;
}
else
{
System.out.println("登录失败,用户名或密码错误!");
num--;
}
if(num==0)
{
System.out.println("三次登录均失败,退出当前系统!");
an="n";
}
else
{
System.out.println("您还有"+num+"次机会,请问要继续吗?(y/n)");
an=input.next();
}
}while(an.equals("y"));
}
}
三、循环结构---for循环
结构for(初始值;条件;初始值变更)
{
循环体
}
案例:
1. 重构四则运算
import java.util.Scanner;
public class Demo04
{
/*
* 1.如果运算符输入错误,循环从新输入运算符
* 2.正确计算/除数为零后,从头计算
*/
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);//拿到Scanner类的对象input
String as=null;
do
{
System.out.println("请输入第一个数字:");
double a=input.nextDouble();
System.out.println("请输入第二个数字:");
double b=input.nextDouble();
String an=null;
do
{
an="n";
System.out.println("请输入运 算 符:");
String oper=input.next();
if(oper.equals("+"))
{
System.out.println("运算的结果是:"+(a+b));
}
else if(oper.equals("-"))
{
System.out.println("运算的结果是:"+(a-b));
}
else if(oper.equals("*"))
{
System.out.println("运算的结果是:"+a*b);
}
else if(oper.equals("/"))
{
if(b==0)
{
System.out.println("除数不能为零");
}
else
{
System.out.println("运算的结果是:"+a/b);
}
}
else if(oper.equals("%"))
{
if(b==0)
{
System.out.println("除数不能为零");
}
else
{
System.out.println("运算的结果是:"+a%b);
}
}
else
{
System.out.println("运算符输入错误,请重新输入运算符!");
an="y";
}
}while(an.equals("y"));
System.out.println("请问要继续吗?");
as=input.next();
}while(as.equals("y"));
}
}
2. 实现1-100偶数、奇数以及能被3整除的数字的和
public class Demo01
{
public static void main(String[] args)
{
/*
* i++等同于i自加1
* i=i+1;
*/
/*int i=1;
while(i<5)
{
System.out.println("好好学习,天天向上");
i++;
}*/
int i=1;
int a=0;//存储偶数的和
int b=0;//存储奇数的和
int c=0;//存储能被3整除的数字的和
while(i<=100)
{
if(i%2==0)
{
a=a+i;
}
else
{
b=b+i;
}
if(i%3==0)
{
c=c+i;
}
i++;
}
System.out.println(a+" "+b+""+c);
}
}
3. 实现九九乘法表
public class Demo02
{
public static void main(String[] args)
{
/*
* 全局变量和局部变量
*/
int i=1;
while(i<=9)
{
int j=1;
while(j<=i)
{
System.out.print(i+"*"+j+"="+i*j+" ");
j++;
}
i++;
System.out.println();
}
}
}
4. 实现指定行数的菱形
*
***
*****
*******
*****
***
*
1 3 1
2 2 3
3 1 5
4 0 7
*
***
*****
*******
*****
***
*
行数 空格数 *数量
1 1 5
2 2 3
3 3 1
import java.util.Scanner;
public class Demo06
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
String an=null;
do
{
System.out.println("请输入菱形的行数:");
int num=input.nextInt();
if(num%2==0)
{
System.out.println("菱形只能是奇数行!");
}
else
{
int m=num/2+1;//例如num=7,m=4;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=m-i;j++)
{
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++)
{
System.out.print("*");
}
System.out.println();
}
int n=num-m;//n=3
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(" ");
}
for(int k=1;k<=num-2*i;k++)
{
System.out.print("*");
}
System.out.println();
}
}
System.out.println("请问要继续吗?");
an=input.next();
}while(an.equals("y"));
}
}
Java基础相关知识: |