JavaSE之循环语句

第四章 循环语句

循环语句:
while适合于循环结束条件已知 但是循环次数未知的情况
for 适合于循环次数已知的情况
for和while之间是可以完全互换的

4.1while循环

  • while语句:
    1.while(循环继续条件){
    需要被循环执行的代码//循环体
    }
    2.while(true){
    循环体
    循环间距
    if(循环结束条件){
    break;
    }
    }
  • 猜数字
import java.util.Scanner;

/*
* while循环必备的条件
* 循环初始化
* 循环体
* 循环间距,改变初始化的值
* 
* while (true)
* 循环体
* 循环间距
* if
* break*/
public class Demo_1 {
   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	System.out.println("Guess a magic number");
   	int number=(int)(Math.random()*101);
   	Scanner sc=new Scanner(System.in);
   	while(true){
   		System.out.print("Enter your guess:");
   		int num=sc.nextInt();
   		if(num==number){
   			System.out.print("yes,the number is"+number);
   			break;
   		}else if(num<number){
   			System.out.println("too low");
   		}else if(num>number){
   			System.out.println("too high");
   		}
   	}
   }

}

4.2do_while循环

do-while:先执行 再判断
do{
循环体;//循环初始化 循环间距
}while(循环结束条件)

//依然是猜数字用dowhile实现
import java.util.Scanner;
public class Demo_2 {
	public static void main(String[]args){
		System.out.println("Guess a magic number");
		int number=(int)(Math.random()*101);
		Scanner sc=new Scanner(System.in);
		int num;
		do{
			System.out.print("Enter your guess:");
			num=sc.nextInt();
			if(num<number){
				System.out.println("too low");
			}else if(num>number){
				System.out.println("too high");
			}
		}while(num!=number);
		System.out.print("yes,the number is "+number);
	}
}

4.3for循环

  • for语句:
    for( 循环初始化 ; 循环继续条件 ; 循环间距){
    循环体
    }
    循环初始化->循环继续条件->循环体->循环间距->
  • for嵌套语句:嵌套循环是由一个外层循环或多个内层循环组成的。每当重复执行一次外层循环时再次进入内部循环,然后重新开始。
  • 示例:最大公约数
import java.util.Scanner;
public class Domo_3 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	System.out.print("Enter:");
   	int num1=sc.nextInt();
   	int num2=sc.nextInt();
   	int min=Math.min(num1, num2);
   	for(int i=min;i>=1;i--){
   			if(num1%i==0&&num2%i==0){
   				System.out.print(i);
   				break;
   			}
   		}
   	}
   }

4.4嵌套循环

  • 打印直角三角形

public class Demo_test {
/*
	* 
   * * 
   * * * 
   * * * * 
   * * * * *  */
   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	for(int i=1;i<=5;i++){
   		for(int j=1;j<=i;j++){
   			System.out.print("* ");
   		}
   		System.out.println();
   	}
   }

}/
  • 打印菱形

public class Demo_test2 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
/*
  * 
 * * 
* * * 
* * * * 
* * * 
 * * 
  * 
 
* */
   	for(int i=1;i<=8;i++){
   		for(int k=1;k<=Math.abs(4-i);k++){
   			System.out.print(" ");
   		}
   		for(int j=1;j<=i&&i+j<=8;j++){
   			System.out.print("*"+" ");
   		}
   		System.out.println();
   	}
   }

}

-打印空心菱形

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

* */
   	for(int i=1;i<=8;i++){
   		for(int k=1;k<=Math.abs(4-i);k++){
   			System.out.print(" ");
   		}
   		for(int j=1;j<=i&&i+j<=8;j++){
   			if(j==1||j==i||i+j==8){
   				System.out.print("* ");
   			}else{
   				System.out.print("  ");
   		}
   		}
   		System.out.println();
   	
   }
   }
}

4.5break和continue

  • break语句
  • continue语句
  • return语句:仅仅代表结束当前函数 如果有返回值 则在函数结束时 将数据进行返回
  • 示例:判断回文串
import java.util.Scanner;


public class Demo_huiwen {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	System.out.print("Enter a number:");
   	int num=sc.nextInt();
   	String str="";
   	int number=num;
   	while(true){
   		int n=number%10;
   		str+=n;
   		number/=10;
   		if(number==0){
   			break;
   		}
   	}
   	if(Integer.parseInt(str)==num){
   		System.out.print("shi hui wen");
   		
   	}else{
   		System.out.print("bu shi hui wen");
   	}
   		
   		
   	}
   }
  • 示例:显示素数
import java.util.Scanner;


public class IsSushu {
//除以一半本身所有的数都除不尽那就是素数
   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	int num=sc.nextInt();
   		boolean flag=true;
   		for(int i=2;i<=num/2;i++){
   			if(num%i==0){
   				flag=false;
   				break;
   			}
   		}
   		if(flag==false){
   		System.out.println("bu shi su shu");
   	}else{
   		System.out.println("shi su shu");
   	}
   
   }
}

小结

1.循环语句有三类: while 循环、 do-while 循环和 for 循环。
2.循环中包含重复执行的语句的部分称为循环体。
3.循环体执行一次称为循环的一次迭代。
4.无限循环是指循环语句被无限次执行。
5.在设计循环时, 既需要考虑循环控制结构, 还需要考虑循环体。
6.while 循环首先检査循环继续条件。 如果条件为 true, 则执行循环体; 如果条件为 false, 则循环结
束。
7.do-while 循环与 while 循环类似, 只是 do-while 循环先执行循环体, 然后再检査循环继续条件,
以确定是继续还是终止。
8.while 和 do-while 循环常用于循环次数不确定的情况。
9.标记值是一个特殊的值, 用来标记循环的结束。
10.for 循环一般用在循环体执行次数固定的情况。
11.for 循环控制由三部分组成。 第一部分是初始操作, 通常用于初始化控制变量。 第二部分是循环继
续条件, 决定是否执行循环体。 第三部分是每次迭代后执行的操作, 经常用于调整控制变量。 通常,
在控制结构中初始化和修改循环控制变量。
12.while 循环和 for 循环都称为前测循环( pretest loop), 因为在循环体执行之前, 要检测一下循环
继续条件。
13.do-while 循环称为后测循环( posttest loop), 因为在循环体执行之后, 要检测一下这个条件。
14.在循环中可以使用 break 和 continue 这两个关键字。
15.关键字 break 立即终止包含 break 的最内层循环。
16.关键字 continue 只是终止当前迭代。

代码示例

import java.util.Scanner;
public class Demo1 {
   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	int sum=0;
   	int positivescount=0;
   	int negativecount=0;
   	Scanner sc=new Scanner(System.in);
   	System.out.print("Enter an integer:");
   	int flag=0; 
   	while(true){
   		int num=sc.nextInt();
   		if(num>0){
   			positivescount++;
   		}else if(num<0){
   			negativecount++;
   		}else{
   			break;
   		}
   		sum=sum+num;
   	}
   	
   		double aver=sum/((positivescount+negativecount)*1.0);
   		System.out.println("The number of positive is"+positivescount);
   		System.out.println("The number of negative is"+negativecount);
   		System.out.println("The total of is "+sum);	
   		System.out.println("The average is "+aver);
   	
   }

}=======================================
import java.util.Scanner;


public class Demo_2 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	System.out.print("Enter num");
   	int num=sc.nextInt();
   	String firstname="";
   	int firstscore=0;
   	String secondname="";
   	int secondscore=0;
   	for(int i=0;i<num;i++){
   		System.out.print("Enter name and grade:");
   		String name=sc.next();
   		int score=sc.nextInt();
   	if(score>=firstscore){
   		secondscore=firstscore;
   		secondname=firstname;
   		firstscore=score;
   		firstname=name;
   	}else if(score>secondscore){
   		 secondscore=score;
   		 secondname=name;
   	}	
   	}
   	System.out.print("第一名:"+firstname+firstscore);
   	System.out.print("第二名:"+secondname+secondscore);   
   }
}=======================================

public class Demo_3 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	int count=0;
   	for(int num=100;num<200;num++){
   		if((num%5==0||num%6==0)&&(num%5==0^num%6==0)){
   			System.out.print(num+" ");
   			count++;
   			if(count%10==0){
   				System.out.println();
   			}
   		}
   	}
   	
   }

=============================================}

public class Demo_4 {
//n^2大于12000的最小整数n
   //n^2小于12000的最大整数n
   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	int n=1;
   	while(n*n<12000){
   		n++;
   	}
   System.out.println(n);
   int m=1;
   while(m*m<12000){
   	m++;
   }
   System.out.println(m-1);
   System.out.println((m-1)*(m-1));
   }
}=========================================
import java.util.Scanner;
/*120/2=60----0
* 60/2=30----0
* 30/2=15----0
* 15/2=7----1
* 15/3=5----0
* 5/2=2----1
* 5/3=1----2
* 5/4
* 5*/


public class Demo_5 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	System.out.print("输入一个数:");
   	int num=sc.nextInt();
   	
   	while(true){
   		boolean flag=false;
   		for(int i=2;i<num/2;i++){
   			if(num%i==0){
   				System.out.print(i+" ");
   				num/=i;
   				flag=true;
   				break;
   			}
   			
   		}
   		if(!flag){
   			System.out.print(num);
   			break;
   		}
   		
   	}
   	
   }
}====================================
import java.util.Scanner;

/*
*        1 
       2 1 2 
     3 2 1 2 3 
   4 3 2 1 2 3 4 
 5 4 3 2 1 2 3 4 5 
6 5 4 3 2 1 2 3 4 5 6 
*/
public class Demo_6 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	int num=sc.nextInt();
   	for(int i=1;i<=num;i++){
   		for(int k=0;k<num-i;k++){
   			System.out.print("  ");
   		}
   		for(int j=-i;j<=i;j++){
   			if(j!=0&&j!=1){
   				System.out.print((int)(Math.abs(j))+" ");
   			}
   		}
   		System.out.println();
   	}
   }
}============================================

public class Demo_7 {
/*
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
==========
1 2 3 4 5 6 
1 2 3 4 5 
1 2 3 4 
1 2 3 
1 2 
1 
==========
         1 
       2 1 
     3 2 1 
   4 3 2 1 
 5 4 3 2 1 
6 5 4 3 2 1 
==========
1 2 3 4 5 6 
 1 2 3 4 5 
   1 2 3 4 
     1 2 3 
       1 2 
         1 
*/
   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	for(int i=1;i<=6;i++){
   		for(int j=1;j<=i;j++){
   			System.out.print(j+" ");
   		}
   		System.out.println();
   	}
   	System.out.println("==========");
   	for (int i = 1; i<=6 ; i++) {
   		for(int j=1;j<=7-i;j++){
   			System.out.print(j+" ");
   		}
   		System.out.println();
   	}
   	System.out.println("==========");
   	for(int i=1;i<=6;i++){
   		for(int k=1;k<=6-i;k++){
   			System.out.print("  ");
   		}
   		for(int j=i;j>=1;j--){
   			System.out.print(j+" ");
   		}
   		System.out.println();
   	}
   	System.out.println("==========");
   	for(int i=1;i<=6;i++){
   		for(int k=1;k<i;k++){
   			System.out.print("  ");
   		}
   		for(int j=1;j<=7-i;j++){
   			System.out.print(j+" ");
   		}
   		System.out.println();
   	}
   	
   }

==================================}===============

import java.util.Scanner;


public class Demo_8 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	Scanner sc=new Scanner(System.in);
   	System.out.print("请输入行数:");
   	int num=sc.nextInt();
   	for(int i=1;i<=num;i++){
   		for(int k=1;k<=num-i;k++){
   			System.out.print(" ");
   		}
   		for(int j=-(i-1);j<=(i-1);j++){
   			if(j<=0){
   				System.out.printf("%-4d",(int)(Math.pow(2,j+i-1)));
   			}else{
   				System.out.printf("%-4d",(int)(Math.pow(2,i-j-1)));
   			}
   		}
   		System.out.println();
   	}
   }

}=======================================

public class Demo_9 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	double sum=0;
   	for(int i=0;i<=48;i++){
   		sum+=(2*i+1)/((2*i+3)*1.0);
   	}
   	System.out.println(sum);
   }

}=======================================

public class Demo_10 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	double sum=0;
   	for(int i=1;i<=10000;i++){
   		sum+=((Math.pow(-1,i+1))/(2*i-1));
   	}
   	System.out.print(4*sum);
   }

}=======================================

public class Demo_11 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	double sum=0.0;
   	double mult=1;
   	for(int i=1;i<10000;i++){
   		for(int j=1;j<=i;j++){
   			mult*=j;
   		}
   		sum+=(1.0/mult);
   	}
   	System.out.print(sum+1);
   }

}=================================

public class Demo_13 {

   public static void main(String[] args) {
   	// TODO Auto-generated method stub
   	int count=0;
   	for(int i=101;i<=2100;i++){
   		if((i%4==0&&i%100!=0)||i%400==0){
   			System.out.print(i+" ");
   			count++;
   		}
   		
   		if(count%10==0){
   			System.out.println();
   	}
   }
   }
}













  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值