欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA萌新学习day4

程序员文章站 2022-07-14 20:03:37
...

JAVA萌新学习day4

一.while循环的基本使用
public class WhileDemo
{
	public static void main(String[] args)
	{
		System.out.println("While循环基本使用");
		//打印1-100自然数的和
		/*
		1.循环的初始条件,即定义循环变量,并赋初值.
		2.循环的结束条件.
		3.循环体的实现,在大括号中写现实的逻辑代码.
		4.循环体需要有触发循环结束的条件,即循环变量改变的条件.
		5.while循环执行过程,先计算条件表达式的值,如果为真,执行循环体,然后
		再次计算条件表达式的值,如果为真,再次执行循环体,否则结束.
		6.如果向提前结束循环,使用break语句.
		*/
		
		//定义变量i,赋值为1,从自然数开始累加
		int i = 1;
		
		//定义变量sum,赋值为0,用来记录最后的结果
		int sum = 0;
		
		//循环开始,检查条件是否为真
		while(i <= 100)
		{
			//将当前的数加到最后的结果sum中
			sum = sum + i;
			
			//修改循环变量的值,即触发循环条件的改变,避免死循环
			i++;
		}
		
		System.out.println("1-100自然数的和是:" + sum);
		
		int j = 1;
		int sum2 = 0;
		while(j < 100)
		{
			if(j%2 != 0)
			{
				sum2 += j;
			}
			j++;
		}
		
		System.out.println("1-100自然数的奇数和是:" + sum2);
		
		int k = 1;
		int sum3 = 0;
		while(k <= 100)
		{
			if(k%2 != 0)
			{
				
				//跳过本次循环,执行下一次
				continue;
			}
			else
			{
				sum3 += j;
			}
			sum3 += j;
		}
	}
}
二.do while的基本使用
public class DoWhileDemo
{
	public static void main(String[] args)
	{
		System.out.println("DoWhile循环基本使用");
		/*
		语法格式:do
				  {循环体代码}
				  while
				  (条件表达式);
		1.执行流程:先执行do关键字后面打括号中的代码然后检查while
		后面的条件表达式的值.
		2.与while循环相比,dowhile至少会执行一次.
		*/
		
		//打印1-100以内同时能被3和5整除的数
		int i = 1;
		
		//如何输出类似效果:15+30+45+60+75+90=315
		int sum = 0;
		String info = "";
		
		boolean state = true;//第一次
		
		do
		{
			//同时被3和5整除的数
			if(i % 3 == 0 && i % 5 == 0)
			{
				sum += i;
				
				//state = false;
				
				if(state)
				{
					info = info + i;
					state = false;
				}
				else
				{
					info = info + "+" + i;
				}
				
				System.out.println("同时被3和5整除的数是:" + i);
			}
			i ++;//触发循环结束的条件变化
			
			//state = false;
		}
		while(i < 100);
		
		System.out.print(info + "=" + sum);
	}
}
三.双重while循环的使用
public class DoubleWhileDemo
{
	public static void main(String[] args)
	{
		System.out.println("双重while循环的使用");
		
		int i = 0;
		
		while(i < 10)
		{
			int j = 0;
			
			while(j < 10)
			{
				//System.out.print((i * 10 + j) + " ");
				System.out.printf("%-4d" , i * 10 + j);
				j ++;
			}
			
			//打印换行符
			System.out.println();
			i ++;
		}
	}
}

我们可以做一个小小的乘法表

public class TableDemo
{
	public static void main(String[] args)
	{
		System.out.println("做一个小小的乘法表");
		
		int i = 9;
		while(i >= 1)
		{
			int j = 9;
			while(j >= 10-i)
			{
				System.out.print((10 - j) + "*" + i + "=" + ((10 - j) * i) + " " );
				j--;
			}
			i--;
			System.out.println();
		}
	}
}
四.for循环基本使用
public class ForDemo
{
	public static void main(String[] args)
	{
		System.out.println("for循环基本使用");
		
		/*
		for(表达式1 ; 表达式2 ; 表达式3)
		{
			循环体代码
		}
		表达式1:为循环的初始值(初始条件)
		表达式2:为循环结束的条件
		表达式3:为改变循环的条件
		1.执行过程:先执行表达式1,后检查表达式2,如果表达式2的值为真,则执行循环体
		,接着执行表达式3,再次检查表打死2,如果为真,继续执行循环体,如果为假,则结
		束循环.
		*/
		
		//输出1-100内能被3整除的数的个数,和能同时被3和5整除的个数
		
		int a3 = 0;
		int a35 = 0;
		for(int i = 0 ; i < 1000 ; i ++ )
		{
			System.out.print(i + " ");
			if((i + 1) % 10 == 0)
			{
				System.out.println();
			}
			if(i % 3 == 0)
			{
				a3 ++;
			}
			if(i % 3 == 0 && i % 5 == 0)
			{
				a35 ++;
			}
		}
		System.out.println("能被3整除的个数有:" + a3 + "个");
		System.out.println("能被3整除且能被5整除的个数有:" + a35 + "个");
	}
}
五.双重for循环的使用
public class DoubleForDemo
{
	public static void main(String[] args)
	{
		System.out.println("双重for循环的使用");
		
		/*
		while,dowhile和for循环对比
		当确定循环次数时,一般用for
		当无法确定循环次数时,一般用while
		只要使用循环,就一定要避免发生死循环
		contiune关键字是跳过本次循环
		break关键字是结束当前循环
		*/
		//循环变量名一般用i和j命名
		for(int i = 0 ; i < 10 ; i ++)
		{
			for(int j = 0 ; j < 10 ; j ++)
			{
					System.out.print((i*10 + j) + " ");
			}
			System.out.println();
		}
	}
}

下面让我们来做几道小小的作业题

1.找出水仙花数有哪些
public class HomeWorkDemo
{
	public static void main(String[] args)
	{
		System.out.println("找出水仙花数有哪些");
		
		for( int narcissus = 100 ; narcissus <= 999 ; narcissus ++ )
		{
			int a = narcissus / 100;
			int b = narcissus / 10 % 10;
			int c = narcissus % 10;
			
			if((a*a*a + b*b*b + c*c*c) == narcissus)
			{
				System.out.println("水仙花有:" + narcissus);
			}
		}
		System.out.println();
	}
}

当然,这里我们找的是三位数内的水仙花数哦~

2.找出所有质数
public class HomeWorkDemo2
{
	public static void main(String[] args)
	{
		System.out.println("找出所有质数");
		
		for(int i = 2 ; i < 100 ; i ++ )
		{
			boolean a = true;
			
			for(int j = 2 ; j < i ; j ++)
			{
				if(i % j == 0)
				{
					a = false;
					break;
					
				}
				
			}
			//在此位置,如何知晓内层循环进入过if语句???
			//因为如果内层循环进入过if语句,说明当前的数不是质数
			//如果内层循环没有进入过if语句,说明当前的数是质数
			if(a)
			{
				System.out.println(i);
			}
		
		}	
	}
}

肯定是100以内的质数啦,如果你愿意,还可以找出更多。

3.计算1-20的所有整数的阶乘
public class HomeWorkDemo3
{
	public static void main(String[] args)
	{
		System.out.println("计算1-20的阶乘");
		
		int k = 1;
		
		for( int i = 1 ; i <= 20; i ++)
		{
			for( int j = 1 ; j <= i ; j++)
			{
				if(j == i)
				{
					k *= j;
					break;
				}
			}
			System.out.println( i + "!=" + k);
		}
		
		
	}
}