循环结构

一时失言乱红尘 2021-11-29 09:24 501阅读 0赞

循环类型

- while循环
语法:
int i=1;//循环的变量初始化
while(条件表达式){//条件i<=10
循环体语句;//输出语句i
//改变循环变量的值
i++;//++i
}

执行流程: 1)判断条件表达式的值,如果为true则执行循环体语句
2)改变循环变量的值,再次判断条件表达式的值,如果为true则执行循环体语句
改变循环变量的值,再次判断条件表达式的值,如果为true则执行循环体语句 …
3)直到某个时刻,改变循环变量的值之后,条件表达式的值为false则退出循环体语句 **-

do-while循环**
语法:
do
{
循环体语句;
}while(条件表达式);

执行流程: 1)先执行语句块一次
2)再计算条件表达式的值,如果为true,再次执行循环体语句,如此循环往复,直到条件表达式的值为false时,退出循环

- for循环
语法:
for(表达式1;表达式2;表达式3){
循环体语句4;
}
表达式1:循环变量的初始化 例如int i=1;
表达式2:条件表达式 i<=100
表达式3:改变循环变量的值

执行流程: 先1–>2—>4—>3—>2—>4…
直到某个时刻,3执行完毕时,表达式2的值为false,则退出for循环

三种循环的区别:

do-while至少会执行一次循环体
for和while只有在条件成立上才会去执行循环体
for和while的区别:控制条件语句中所控制的那个循环变量在for循环之后,就不被访问了,而while结束后,继续使用

关键字break和continue:

1.break的使用场景:
在选择结构 switch语句中
在循环语句中
离开使用场景的存在是没有意义的,不能单独使用
break作用:
循环中:跳出单层循环(当前所在循环)

2.continue:只能用在循环语句中
离开使用场景的存在是没有意义的
continue的作用:结束本次循环,进入循环的下一次

随机数的产生:

和前面Scanner一样,要先import一个包——import java.util.Random;
再创建一下——Random rd = new Random(); 称为将类实例化
int identifyCode = rd.nextInt(10); 定义了一个 identifyCode,并且产生一个0到9的随机数;
如果要产生1-10的随机数则再其后面加1

例:

计算n!,要求n从键盘输入。

  1. public class Result{
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. System.out.println("请输入你想要求阶乘的整数");
  5. int num = sc.nextInt();
  6. int result =1;
  7. //利用了for循环
  8. for(int i=1;i<=num;i++)
  9. {
  10. result*=i;
  11. }
  12. System.out.println("最后的结果为"+result);
  13. }
  14. }

例:

打印如下图形:要求行数从键盘录入(并做相关的条件约束)
*********
*******
*****
***
*
***
*****
*******
*********
程序最后:询问用户是否继续的情况

用了for循环和do - while循环

  1. public class Triangle{
  2. public static void main(String[] args) {
  3. boolean flag1;
  4. Scanner sc = new Scanner(System.in);
  5. //利用do循环是为了确保一定可以先执行一次
  6. do{
  7. System.out.println("请输入你想要的行数");
  8. int line = sc.nextInt();
  9. //输出上面的倒三角形
  10. System.out.println("行数为奇数时的图形如下:");
  11. for(int i=0;i<(line+1)/2;i++){
  12. //上行数可直接除以2,取整
  13. for(int j=0;j<i;j++){
  14. //空格与行数的关系是少一
  15. System.out.print(" ");
  16. }
  17. for(int k=line-2*i;k>0;k--){
  18. //*号跟总行数的关系是两倍两倍的少
  19. System.out.print("*");
  20. }
  21. System.out.println();
  22. }
  23. //输出下面的正三角形
  24. for(int i=0;i<(line-1)/2;i++){
  25. //下三角一共(line-1)/2行
  26. for(int j=0;j<(line-1)/2-i-1;j++)
  27. //下三角的空格数是下面的行数-i;{
  28. System.out.print(" ");
  29. }
  30. for(int k=0;k<2*i+3;k++) //每一行的*是比两倍的行数加3
  31. {
  32. System.out.print("*");
  33. }
  34. }
  35. System.out.println();
  36. System.out.println("请输入你是否想继续:Y||N");
  37. String str1 = sc.next();
  38. flag1 = str1.equals("Y");
  39. }while(flag1); //利用了do while来确定是否还要继续,继续则再次循环
  40. System.out.println("不进行继续,则退出");
  41. }
  42. }

例:

模拟购物流程
在这里插入图片描述
这里用了do - while循环,还有switch进行选择

  1. import java.util.Scanner; //导入包
  2. public class Shopping{
  3. public static void main(String[] args) {
  4. //确定继续购买商品的
  5. boolean flag;
  6. //用来计算每一次的总计
  7. double sum = 0.0;
  8. Scanner sc = new Scanner(System.in);
  9. //打印菜单
  10. System.out.println("****************************");
  11. System.out.println("请选择购买的商品的编号:");
  12. System.out.println("1.T恤 2.网球鞋 3.网球拍");
  13. System.out.println("****************************");
  14. System.out.println();
  15. System.out.println("商品价格:");
  16. System.out.println("T恤:450.0 网球鞋:570.0 网球拍:360.0");
  17. //进行一个do while的循环,首先执行一次购买过程
  18. do{
  19. System.out.println("请输入商品编号:");
  20. int id = sc.nextInt();
  21. //定义字符串时,要给它进行初始化
  22. String things = null;
  23. //定义双精度时,也要进行初始化;
  24. double price =0.0;
  25. double tshirtPrice = 450.0;
  26. double shoesPrice = 570.0;
  27. double racketPrice = 360.0;
  28. //进行选择买哪件商品
  29. switch(id){
  30. case 1:
  31. things = "T恤";
  32. price = 450.0;
  33. break;
  34. case 2:
  35. things = "网球鞋";
  36. price = 570.0;
  37. break;
  38. case 3:
  39. things = "网球拍";
  40. price = 360.0;
  41. break;
  42. default:
  43. System.out.println("选择序号有误,请重新选择");
  44. break;
  45. }
  46. System.out.println("请输入购买数量:");
  47. int number = sc.nextInt();
  48. System.out.println(things+":¥"+price+"\t数量"
  49. +number+"\t合计:¥"+(number*price));
  50. //此处用来叠加最后的价格,sum定义在循环外,则一直有新值覆盖
  51. sum += number*price;
  52. System.out.print("是否继续:Y/n\t");
  53. String str = sc.next();
  54. //字符串的比较
  55. flag = str.equals("Y");
  56. }while(flag); //循环语句的条件
  57. System.out.println(); //打印一个换行
  58. //通过键盘接受要打的折扣
  59. System.out.println("折扣:");
  60. double discount = sc.nextDouble();
  61. System.out.println("应付金额"+sum*discount);
  62. System.out.println("实付金额:");
  63. double realMoney = sc.nextDouble();
  64. System.out.println("找钱:"+(realMoney-sum*discount));
  65. }
  66. }
  67. ```
  68. 循环结构就酱紫?

发表评论

表情:
评论列表 (有 0 条评论,501人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java循环结构

    (1)Java中的循环控制语句有while循环、do-while循环和for循环等,循环结构的特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止。 (2)循环主要由

    相关 循环结构

    1. 程序的三大结构 顺序:代码自上而下,按顺序执行 分支:根据指定的条件,选择不同的过程执行 循环:重复 2. 循环的意义:

    相关 循环结构

    一、while 语句格式 初始化条件表达式; while( 条件表达式 )//当条件为真时,一直循环执行里面的语句,死循环,所以一般需要对条件进行控制 { /

    相关 java循环结构

    当程序需要重复执行一段代码时,使用循环结构。循环结构的特点是在给定的条件成立时,反复执行一段代码,知道条件不成立。 java中的三种循环结构 while循环 do-

    相关 JavaScript循环结构

    ![SouthEast][] 1.1 循环结构的概念 在了解循环结构的概念之前,先看看生活中的一些循环场景: (1)食堂人员打菜:接过顾客餐盘→询问菜品→打菜→递回