day1-Java基础语法--Java循环语句

while语句
格式:
while(条件表达式)
{
需要重复执行的功能代码–循环体;
}
工作原理:先判断条件是否为真(true),为真则执行循环体一次,然后再重新判断条件,若为true,再执行一次循环体,如此反复,直到条件为假时结束循环。

do–while语句
格式:
do
{
需要重复执行的功能代码-循环体;
}while(条件表达式)
工作原理:先执行循环体一次,然后再判断条件,若为true,再执行一次循环体,再判断条件,若条件为true,则再执行循环体,如此反复,直到条件为假时结束循环
与while的区别:do-while至少执行一次循环体,while有可能一次都不执行

for语句
格式:for(表达式1;表达式2;表达式3)
{
需要重复执行的代码–循环体;
表达式1:初始化表达式,用于初始化后面两个表达式需要的变量
表达式2:循环控件条件表达式,用于判断是否再执行循环体
表达式3:改变循环控制变量的表达式。
}
工作原理:
先执行表达式1,再判断表达式2是否为true,为true时则执行循环体,然后执行表达式3,接着再判断表达式2,若为true,再执行循环体,再执行表达式3,如此反复,直到表达式为false时,结束循环。
注意事项
1.for循环结束后,表达式1中定义变量的内存会释放,即变量的作用域已结束
2.变量的作用域(范围):每一个变量是有作用域的,从变量的定义位置开始,到变量所在大括号结束位置
3.如果循环结束后,循环中的变量不再使用时,适合选择for循环,反之可以选择while或do-while循环。
思考案例
1、for循环中哪些表达式可以省略,省略之后,会出现什么情况? 如果三个表达式都省略时会出现什么情况 ?
(1)for小括号内三个表达式为空   
eg for(;;)   
printf (“test”);   
在小括号内只有两个分号,无表达式。表示无限循环。这种无限循环适用于菜单选择程序中。   
(2)没有循环体的for语句   
eg:for(; *str==”; str++);   
这种情况循环体内的语句只是一个分号,这个for循环是指针str所指流中的前导空格删除。   
例:for (t=0;t ;)   
此例在程序中起延时作用。
2、计算1~10的累加和


public class homework02 {

    public static void main(String[] args) {
        int sum=0;
        for(int i=0;i<=10;i++)
        {
            sum=sum+i;
        }
        System.out.println(sum);

    }

}

3、求1~100之间的可以被7整除的数的个数


public class homework03 {

    public static void main(String[] args) {
        int count=0;
        for(int i=1;i<=100;i++)
        {
            if(i%7==0)
            {
                count++;
            }
        }
        System.out.println("可以被7整除的个数为:"+count);

    }

}

4、3000米长的绳子,每天减一半。问多少天这个绳子的长度会小于5米?(不考虑小数)


public class homework04 {

    public static void main(String[] args) {
        int count=0;
        for(int i=3000;i>=5;i=i/2)
        {
            count++;
        }
        System.out.println("第"+count+"天绳子的长度会小于5米");

    }

}

5、 产生1~10之间的数,用户去猜这个数,直到猜中为止

import java.util.Random;
import java.util.Scanner;


public class homework05 {

    public static void main(String[] args) {
        Random myRandom=new Random();
        int number=myRandom.nextInt(10)+1;  
        Scanner myScanner=new Scanner(System.in);
        System.out.println("请输入1-10之间的数");
        int guess=myScanner.nextInt();
        if(guess==number)
        {
            System.out.println("恭喜你,猜对啦!");
        }
        else
        {
            System.out.println("对不起,正确数字为"+number);
        }
        myScanner.close();


    }

}

6、计算给定正整数的各位数的和,如用户输入1234,结果即是1+2+3+4=10的值

import java.util.Scanner;

public class homework06 {

    public static void main(String[] args) {
        System.out.println("程序目的:计算给定整数的各位数的和");
        System.out.println("请输入给定整数");
        Scanner myScanner = new Scanner(System.in);
        int number = myScanner.nextInt();
        int result = 0;
        String answer = "";
        int times = 1;
        int count;
        int data = 0;
        for (int i = 1;; i++) {

            if (number < times) {
                System.out.println("用户输入位数为:" + (i - 1));
                count = i - 1;
                break;
            }
            times = times * 10;
        }
        times = times / 10;
        data = result;
        for (int i = count; i > 0; i--) {

            data = data + number / times;
            if (i == count) {
                answer = number / times + "";
            } else {
                answer = answer + "+" + number / times + "";
            }

            number = number - number / times * times;
            times = times / 10;
        }
        System.out.println(answer + "=" + data);
        myScanner.close();

    }

}

7、计算给定数的阶乘,可以重复该过程(提示是否继续?1:是 0:否),如5的阶乘: 5*4*3*2*1=120

import java.util.Scanner;

public class homework07 {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        int answer;
        System.out.println("本程序目的:计算给定数的阶乘");
        do {
            System.out.println("请给出您需要计算的阶乘数:");
            int a = myScanner.nextInt();
            String result = "";
            int sum = 1;
            for (int i = 1; i <= a; i++) {
                sum = sum * i;
                result = result + i + "*";
            }
            System.out.println( result +"="+ sum);

            System.out.println("是否继续? 1: 是 0:否");
            answer = myScanner.nextInt();
        } while (answer == 1);
        myScanner.close();
    }
}

8、打印九九乘法表

public class homework08 {

    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + i * j+" ");
            }
            System.out.println();
        }
    }
}

9、以*字符表示,打印一个实心长方形、一个直角三角形、实心菱形、空心菱形

import java.util.Scanner;

public class homework09 {

    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println("本程序目的:输出实心长方形");
        System.out.println("请输入长方形的长:");
        int a = myScanner.nextInt();
        System.out.println("请输出长方形的宽:");
        int b = myScanner.nextInt();
        myScanner.close();
        for (int i = 1; i <= b; i++) {
            for (int j = 1; j <= a; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

    }

}
import java.util.Scanner;


public class homework10 {

    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println("本程序目的:输出直角三角形");
        System.out.println("请输入三角形的一条直角边:");
        int a = myScanner.nextInt();
        //System.out.println("请输出长方形的另一条直角边:");
    //  int b = myScanner.nextInt();
        myScanner.close();
        for(int i=1;i<=a;i++)
        {
            for(int j=1;j<=i;j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }


    }

}
import java.util.Scanner;

public class homework11 {

    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println("本程序目的:输出实心菱形");
        System.out.println("请输入菱形的边长:");
        int a = myScanner.nextInt();
        myScanner.close();
        for (int i = 1; i <= a; i++) {
            for (int k = 0; k <= i; k++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= a; j++) {
                for (int k = 0; k <= 1; k++) {
                    System.out.print(" ");
                }
                if (i == 1 || i == a) {
                    System.out.print("*");
                } else {
                    System.out.print("*");
                }
            }
            System.out.println();
        }

    }
}
import java.util.Scanner;

public class homework12 {

    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println("本程序目的:输出空心菱形");
        System.out.println("请输入菱形的边长:");
        int a = myScanner.nextInt();
        myScanner.close();
        for (int i = 1; i <= a; i++) {
            for (int k = 1; k <= i; k++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= a; j++) {

                if (i == 1 || i == a) {
                    System.out.print("*");
                } else {
                    if (j == 1 || j == a) {

                        System.out.print("*");
                    } else {
                        System.out.print(" ");

                    }
                }
            }
            System.out.println();
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值