java开辟入门学习五-流程控制

打印 上一主题 下一主题

主题 793|帖子 793|积分 2379

流程控制语句

if, if...else,  if..else if..else 

与前端相同 略
switch case

与前端差别的是case不能使用表达式,使用表达式会报错
  1. class TestSwitch {
  2.     public static void main(String[] args) {
  3.        // switch 表达式只能是特定的数据类型: byte short char int 枚举(JDK5.0新增) String(JDK8.0新增)
  4.        // case 后跟的场景,使用表达式与这些常量做相等的判断,不行
  5.        // break 与前端相同,break不写会执行所有语句
  6.        int number = 10;
  7.        switch(number) {
  8.             case 10:
  9.                 System.out.println("10");
  10.                 break;
  11.             default:
  12.                 System.out.println("default");
  13.                 break;
  14.        }
  15.        char c1 = '你';
  16.        switch(c1) {
  17.             case '你':
  18.                 System.out.println("你");
  19.                 break;
  20.             case '我':
  21.                 System.out.println("我");
  22.                 break;
  23.             default:
  24.                 System.out.println("default");
  25.                 break;
  26.        }
  27.        switch(number) {
  28.             case number > 10:  // 错误
  29.                 System.out.println("大于10");
  30.                 break;
  31.             default:
  32.                 System.out.println("default");
  33.                 break;
  34.        }
  35.     }
  36. }
复制代码

if和switch的对比 

if: 条件是一个布尔类型的值,if表达式可以用于范围判断,也可以用于等值判断,范围更广
switch语句条件是一个常量,使用范围更狭窄,但switch更具有穿透性
for,while, do while

与前端的语法都是一致的,break跳出当个for循环;continue跳出当次循环
  1. class TestFor {
  2.     public static void main(String[] args) {
  3.         int sum = 0, count = 0;
  4.         for(int i = 1; i <= 100; i++) {
  5.             if(i % 2 == 0) {
  6.                 sum += i;
  7.                 count += 1;
  8.             }
  9.         }
  10.         System.out.println("输入出"+ count + "输出" + sum);
  11.     }
  12. }
复制代码
相关测试案例

键盘输入功能case

  1. // 引入包
  2. import java.util.Scanner;
  3. public class TestCase {
  4.     public static void main(String[] args)  {
  5.        Scanner scanner = new Scanner(System.in);
  6.        System.out.println("请输入姓名:");
  7.        String name = scanner.next();
  8.         System.out.println("请输入性别:男\\女");
  9.         // 获取字符串第一个字段
  10.         String gender = scanner.next();
  11.         System.out.println("请输入年龄");
  12.         // 获取字符串第一个字段
  13.         int age = scanner.nextInt();
  14.         System.out.println("请输入体重:");
  15.         double weight = scanner.nextDouble();
  16.         System.out.println("请输入是否单身:单身true;不单身 false");
  17.         boolean isSingle = scanner.nextBoolean();
  18.         // == 用于比较两个变量是否引用同一个对象(内存存储地址)
  19.         if(gender == "男") {
  20.             System.out.println("男");
  21.         }
  22.         // 比较字符串值是否相等
  23.         if(gender.equals("男")) {
  24.             System.out.println("男1");
  25.         }
  26.             
  27.     }
  28. }
复制代码
随机数

  1. class RandomNum {
  2.     public static void main(String[] args) {
  3.         // 会返回[0.0,1.0)范围的double类型的随机数
  4.         double d1 = Math.random();
  5.         // 获取[0, 100]范围的随机整数
  6.         int i1 = (int)(Math.random() * 101); // [0, 100)
  7.         // 获取一个[1,100]范围的随机整数
  8.         int i2 = ((int)(Math.random() * 100)) + 1; // [0, 100)
  9.         // 获取一个[a,b] 范围的随机整数
  10.         // (int)(Math.random() * (b-a+1)) + a
  11.     }
  12. }
复制代码
输出*


  1. class TestFor1 {
  2.     public static void main(String[] args) {
  3.        int maxStar = 5;
  4.        for(int i = 1; i <= 3; i++) {
  5.             String str = "";
  6.             // *的个数
  7.             int num = (i * 2) - 1;
  8.             // 空格数
  9.             int space = (maxStar - num) / 2;
  10.             for(int j = 1; j <= maxStar; j++)  {
  11.                 if(j <= space || j > space + num) {
  12.                      str += "-";
  13.                 }
  14.                 if(j > space && j <= space + num) {
  15.                     str += "*";
  16.                 }
  17.             }
  18.             System.out.println(str);
  19.        }
  20.     }
  21. }
复制代码
输出99乘法表


  1. class Testfor2 {
  2.      public static void main(String[] args) {
  3.       for(int i = 1; i <= 9; i++) {
  4.         String expression = "";
  5.         for(int j = 1; j <= i; j++) {
  6.              expression +=  i + "*" + j + "=" + (i * j) + "\t";
  7.         }
  8.         System.out.println(expression);
  9.       }
  10.     }
  11. }
复制代码
找出100内全部质数

  1. class Testfor3 {
  2.      public static void main(String[] args) {
  3.         int count = 0;
  4.         for(int i = 2; i <= 100; i++) {
  5.             boolean isNum = false;
  6.             for(int j = 2; j < i; j++) {
  7.                 if(i%j == 0) {
  8.                     isNum = true;
  9.                     break;
  10.                 }
  11.             }
  12.             if(!isNum) {
  13.                 count += 1;
  14.                 System.out.println(i);
  15.             }
  16.         }
  17.       
  18.         System.out.println("总数:" + count);
  19.     }
  20. }
复制代码
优化算法 
  1. class Testfor4 {
  2.      public static void main(String[] args) {
  3.         int count = 0;
  4.         for(int i = 2; i <= 100; i++) {
  5.             boolean isNum = false;
  6.              // 小于i的平方根内计算,优化算法
  7.             for (int i = 2; i <= Math.sqrt(i); i++) {
  8.                 if (i % j == 0) {
  9.                     isNum = true;
  10.                 }
  11.             }
  12.             if(!isNum) {
  13.                 count += 1;
  14.                 System.out.println(i);
  15.             }
  16.         }
  17.       
  18.         System.out.println("总数:" + count);
  19.     }
  20. }
复制代码
记账本

通过键盘输入输出,写一个简朴的记账本
  1. public class AccountSoft {
  2.     public static void main(String[] args) {
  3.        boolean isFlag = true;
  4.        int initMoney = 1000;
  5.        String info = "";
  6.        while(isFlag) {
  7.             System.out.println("----记账软件----");
  8.             System.out.println("1 收支明细");
  9.             System.out.println("2 登记收入");
  10.             System.out.println("3 登记支出");
  11.             System.out.println("4 退出");
  12.             System.out.println("请选择(1-4):");
  13.             char select = Utility.readMenuSelection();
  14.             switch(select) {
  15.                 case '1':
  16.                     System.out.println("----收支明细---");
  17.                     System.out.println("余额\t收支\t收支说明");
  18.                     System.out.println(info);
  19.                     break;
  20.                 case '2':
  21.                    System.out.println("----登记收入----");
  22.                                         int money1 = Utility.readNumber();
  23.                                        
  24.                                         if(money1 > 0){
  25.                                                 initMoney += money1;
  26.                                         }
  27.                                         System.out.println("请输入说明");
  28.                                         String addDesc = Utility.readString();
  29.                                         info += initMoney + "\t" + money1 + "\t" + addDesc + "\n";
  30.                     break;
  31.                 case '3':
  32.                     System.out.println("----登记支出----");
  33.                                         int money2 = Utility.readNumber();
  34.                                        
  35.                                         if(money2 > 0 && initMoney >= money2){
  36.                                                 initMoney -= money2;
  37.                                         }
  38.                                         System.out.println("请输入说明");
  39.                                         String minusDesc = Utility.readString();
  40.                                         info +=  initMoney + "\t" + money2 + "\t" + minusDesc + "\n";
  41.                     break;
  42.                 default:
  43.                     System.out.println("请确认是否退出(Y/N)");
  44.                     char isExit = Utility.readConfirmSelection();
  45.                     if(isExit == 'Y') {
  46.                         isFlag = false;
  47.                     }
  48.                     break;
  49.             }
  50.        }
  51.       
  52.       
  53.     }
  54. }
复制代码
Utility 
  1. import java.util.Scanner;
  2. public class Utility {
  3.     public static Scanner scanner = new Scanner(System.in);
  4.     // char为返回格式
  5.     public static char readMenuSelection() {
  6.         char c;
  7.         for(;;) {
  8.             String str = readKeyBoard(1);
  9.             c = str.charAt(0);
  10.             if(c != '1' && c != '2' && c!='3' && c != '4') {
  11.                 System.out.print("选择错误请重新输入:");
  12.             }else {
  13.                 break;
  14.             }
  15.         }
  16.         return c;
  17.     }
  18.     public static int readNumber() {
  19.         int n;
  20.         for (; ; ) {
  21.             String str = readKeyBoard(4);
  22.             try {
  23.                 n = Integer.parseInt(str);
  24.                 break;
  25.             } catch (NumberFormatException e) {
  26.                 System.out.print("请输入数值");
  27.             }
  28.         }
  29.         return n;
  30.     }
  31.     public static char readConfirmSelection() {
  32.         char c;
  33.         for (; ; ) {
  34.             String str = readKeyBoard(1).toUpperCase();
  35.             c = str.charAt(0);
  36.             if (c == 'Y' || c == 'N') {
  37.                 break;
  38.             } else {
  39.                 System.out.print("请输入正确选项");
  40.             }
  41.         }
  42.         return c;
  43.     }
  44.     public static String readString() {
  45.         String str = readKeyBoard(8);
  46.         return str;
  47.     }
  48.     public static String readKeyBoard(int limit) {
  49.         String line = "";
  50.         while(scanner.hasNext()) {
  51.             line = scanner.nextLine();
  52.             if(line.length() < 1 || line.length () > limit) {
  53.                 System.out.print("输出超过限制");
  54.                 continue;
  55.             }
  56.             break;
  57.         }
  58.         return line;
  59.     }
  60. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

鼠扑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表