1.3 Java基础(三)循环结构

知识点:
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.        实现指定行数的菱形

   *
  ***
 *****
*******
 *****
  ***
   *



行数        空格数m-i      *数量  2*i-1
 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基础相关知识:


1.1 Java基础(一)概述

1.2 Java基础(二)选择结构

1.3 Java基础(三)循环结构

1.4 Java基础(四)数组



猜你喜欢

转载自blog.csdn.net/qq_40254536/article/details/80805913
1.3