java基础(一) for / while / do...while循环语句

开始学习jva基础,做此笔记
三种循环的区别:

  1. 对于知道明确区间的需求,比如输出1-10之间的奇数使用for循环
  2. 不明确区间的使用while
  3. 使用for循环,循环一结束变量就停止占用内存
  4. 初始化变量如果在循环外还需要用建议用while
  5. do while循环表示此循环至少执行一次,for/while循环可以一次都不执行

eg:

for循环语句:

package com.st.basis.day04;

/*
 * for循环语句:
 * 格式:
 * 
 * for(初始化语句;判段语句;控制条件语句){
 *           循环体语句
 *	}
 * */

public class ForDome01 {
	//偶数和
	public static Object shuchu(){
		int a = 0;
		for(int i=1; i<=100; i++){
//			a = a + i;
			if(i%2==0){
				a += i;
			}
		}
		return a;
	}
	
	//阶乘
	public static Object jiecheng(int data){
		int n = data;
		int sum = 1;
		for(int i=1; i<=n; i++){
			sum *= i;
		}
		return sum;
	}
	
	public static Object demo01(int data){
		int n = data;
		int sum = 1;
		for(int i=1; i<=n-1; i++){
			int a = n-i;
			int c = n*a;
			sum *= c;
		}
		return sum;
	}
	
	//水仙花数(100-1000)
	//暴力法
	/*水仙花数是一个三位数,每个位的数字的3次幂之和等于它本身。
	 * eg:153
	 * 1^3 + 5^3+ 3^3 = 153
	 */
	public static Object demo02(int data){	
		System.out.println("共有下面几位:");
		for(int i=99; i<1000; i++){
			int baiwei = i/100;
			int shiwei = i/10%10;
			int gewei = i%10;
			int sum = (int) (Math.pow(baiwei, 3) + Math.pow(shiwei, 3) + Math.pow(gewei, 3)); 
			if(sum == i){
				System.out.println(sum);
			}
			
		}
		return data;
	}
	//2.0
	public static void demo03(){	
		System.out.println("共有下面几位:");
		for(int i=99; i<1000; i++){
			int baiwei = i/100;
			int shiwei = i/10%10;
			int gewei = i%10;		
			int sum = (int) (Math.pow(baiwei, ForDome01.GetLength(1000)) + Math.pow(shiwei, ForDome01.GetLength(1000)) + Math.pow(gewei, 3)); 
			if(sum == i){
				System.out.print(sum+" ");
			}
		}
	}
	
		
		public static int GetLength(int number){ //获取输入数的位数
			int getlength = (int) Math.log10(number);
			return getlength;
		}
	//水仙花数(100-无限)
	public static int demo04(int data){
		for(int i=100; i<data; i++){
			
		}
		return data;
	}
	
	//统计水仙花数
	public static void demo05(){
		int count = 0;
		for(int i=100; i<1000; i++){
			int a = i/100;
			int b = i/10%10;
			int c = i%10;	
			int sum = (int) (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)); 
			if(sum == i){
				count++;
			}
		}
		System.out.println(count);
	}
	/*
	 * 五位数
	 * 个位等于万位
	 * 十位等于千位
	 * 个位+十位+千位+万位=百位
	 * */
	public static void demo06(){
		for(int i=10000; i<=99999; i++){
			int a = i%10;       //个位
			int b = i/10%10;	 //十位
			int c = i/100%10;   //百位
			int d = i/1000%10;  //千位
			int e = i/10000%10; //万位
			if((a == e) & (b == d) & (a+b+d+e==c)){
				System.out.println(i);
			}
		}
	}
	
	/*
	 * 统计1-1000之间满足下列条件的数有几个
	 * 对3整除余2
	 * 对5整除余3
	 * 对7整除余2
	 */
	public static void demo07(){
		int count = 0;
		for(int i=1; i<=1000; i++){
			if((i%3==2) && (i%5==3) && (i%7==2)){
				count++;
			}
		}
		System.out.println(count);
	}

	
	public static void main(String[] args) {
//		System.out.println(ForDome01.shuchu());
//		System.out.println(ForDome01.jiecheng(5));
//		System.out.println(ForDome01.demo01(5));
//		System.out.println(ForDome01.demo02(2));
//		demo03();
//		demo05();
//		demo06();
		demo07();
	}
}

while

package com.st.basis.day04;

public class WhileDemo {
	/*
	 * while循环语句
	 * 格式:
	 * 初始化语句;
	 * while(判断语句){
	 * 	循环体语句;
	 * 	控制条件语句;
	 * }
	 * */
	public static void main(String[] args) {
//		demo01();
//		demo02();
//		demo03();
//		demo04();
		demo05();
	}
	
	//循环输出helloworld
	static void demo01(){
		int i = 0;
		while(i<10){
			System.out.println("helloword");
			i++;
		}
	}
	
	//输出1-100的和
	static void demo02(){
		int sum = 0;
		int i = 0;
		while(i<=100){
			sum += i ;
			i++;
		}
		System.out.println(sum);
	}
	
	//循环输出100-1000的水仙花数
	static void demo03(){
		int i = 100;
		while(i<=1000){
			int a = i/100;
			int b = i/10%10;
			int c = i%10;	
			int sum = (int) (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)); 
			if(sum == i){
				System.out.println(i);
			}
			i++;
		}
	}
	
	//统计水仙花数
	static void demo04(){
		int i = 100;
		int count = 0;
		while(i<1000){
			int a = i/100;
			int b = i/10%10;
			int c = i%10;	
			int sum = (int) (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)); 
			if(sum == i){
				count++;
			}
			i++;
		}
		System.out.println(count);
	}
	
	/*
	 * 珠穆朗玛峰8848m
	 * 一张纸厚度为0.01m
	 * 请问叠多少次等于珠穆朗玛峰高度
	 * */
	static void demo05(){
		int max = 884800;
		int min = 1;
		int count = 0;
		while(min < max){
			count++;
			min *=2;
		}
		System.out.println(count);
	}
}

do…while

package com.st.basis.day04;

/*
 * do..while:
 *  
 * 初始化语句;
 * do{
 * 		循环体语句;
 * 		控制条件语句;
 * }while(判断条件语句);
 * 
 * */

public class DoWhileDemo {

	public static void main(String[] args) {
		demo01();
	}

	//循环输出hellworld
	private static void demo01() {
		String a = "Helloworld";
		int num = 0;
		do{
			System.out.println(a);
			num++;
		}while(num<10);
	}

}

猜你喜欢

转载自blog.csdn.net/CrankyST/article/details/83620953