开始学习jva基础,做此笔记
三种循环的区别:
- 对于知道明确区间的需求,比如输出1-10之间的奇数使用for循环
- 不明确区间的使用while
- 使用for循环,循环一结束变量就停止占用内存
- 初始化变量如果在循环外还需要用建议用while
- 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);
}
}