zoukankan      html  css  js  c++  java
  • 03控制流程语句

      1 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
      2 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构、分支结构和循环结构,如下图所示:
      3 if单分支选择结构  
      4 if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句
      5 package ifdemo;
      6 
      7 public class Test {
      8     public static void main(String[] args) {
      9         double n1 = 6*Math.random();
     10         double n2 = 6*Math.random();
     11         double n3 = 6*Math.random();
     12         int sum = (int)(n1 + n2 + n3);
     13         if (sum >= 15) {
     14             System.out.println("今天手气不错");
     15         }
     16         
     17         if (sum >= 10 && sum < 15) {
     18             System.out.println("今天手气一般");
     19         }
     20         
     21         if (sum < 10) {
     22             System.out.println("今天手气不好");
     23         }
     24         System.out.println("今日运势:"+sum);
     25         
     26     }
     27 
     28 if-else双分支选择结构
     29 当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分
     30 package ifdemo;
     31 
     32 import java.util.Scanner;
     33 
     34 /**
     35 抽奖说明 会员号的百位数字和随机数相等 则会幸运会员 
     36 输出 XXXX会员,您是幸运会员,否则输出  XXXX 谢谢您的支持
     37 
     38 
     39  * @author tang
     40  *
     41  */
     42 public class Test02 {
     43     public static void main(String[] args) {
     44         //创建一个Scanner的变量 用于输入会员卡卡号
     45         Scanner input = new Scanner(System.in);
     46         System.out.println("请输入会员卡卡号");
     47         int no = input.nextInt();
     48         //获取会员卡百位数字  213
     49         int b = (no%1000)/100;
     50         
     51         //生成一个0~9的随机数
     52         int number = (int)(10*Math.random());
     53         
     54         //判断会员卡卡号百位数字是否和随机数相等
     55         if (b == number) {
     56             System.out.println(no+"恭喜您,中奖了");
     57         }else {
     58             System.out.println(no+"很遗憾没中奖.谢谢惠顾");
     59         }
     60         
     61         System.out.println("程序结束");
     62     }
     63 }
     64 
     65 
     66 package ifdemo;
     67 
     68 import java.util.Scanner;
     69 
     70 /**
     71 小孩搬桌子: 年龄大于7岁可以搬桌子了,大于5岁且为男孩,也可以搬桌子了
     72  否则不可以搬动桌子 你还太年轻了
     73  * @author tang
     74  *
     75  */
     76 public class Test03 {
     77     public static void main(String[] args) {
     78         Scanner input = new Scanner(System.in);
     79         System.out.println("请输入年龄");
     80         //输入年两
     81         int age = input.nextInt();
     82         System.out.println("请选择性别:1,男  2,女");
     83         //输入性别
     84         int gender = input.nextInt();
     85         
     86         if (age >= 7) {
     87             System.out.println("可以搬桌子");
     88         }
     89         if (age >= 5 && age < 7) {
     90             if (gender == 1) {
     91                 System.out.println("五岁到七岁之间的男孩可以搬桌子");
     92             }else {
     93                 System.out.println("五岁到七岁之间的女孩不可以搬桌子");
     94             }
     95         }
     96         if (age < 5) {
     97             System.out.println("你不可以搬桌子,太年轻");
     98         }
     99     }
    100 }
    101 
    102 If-else if-else多分支选择结构
    103 if(布尔表达式1) {
    104 语句块1;
    105 } else if(布尔表达式2) {
    106 语句块2;
    107 }………
    108 else if(布尔表达式n){
    109     语句块n;
    110 } else {
    111     语句块n+1;
    112 }
    113 逐条if语句进行判断
    114 条件匹配,进入语句体
    115 否则对if语句继续匹配
    116 
    117 package ifelseif;
    118 
    119 import java.util.Scanner;
    120 
    121 /**
    122  * 0~3  婴儿  好好吃奶
    123  * 3~5  儿童  好好玩
    124  * 6~22 少年 好好学习
    125  * 23~60 中年  好好挣钱
    126  * 60~80 中老年  好好补钙
    127  * 80~   老年  好好晒太阳
    128  * @author tang
    129  *
    130  *    6~23  精力旺盛   时间充足   财力不足
    131  *    24~60 精力旺盛  时间不足  财力充足
    132  *    60~  精力不足   时间充足  财力充足
    133  */
    134 public class IfElseIf {
    135     public static void main(String[] args) {
    136         Scanner input = new Scanner(System.in);
    137         System.out.println("请输入年龄");
    138         int age = input.nextInt();
    139         if (age <= 3) {
    140             System.out.println("婴儿,应该好好吃奶");
    141         }else if(age < 6){
    142             System.out.println("儿童,好好玩");
    143         }else if(age < 22){
    144             System.out.println("少年,要好好学习");
    145         }else if(age <= 60){
    146             System.out.println("中年,要好好工作");
    147         }else if (age <= 80) {
    148             System.out.println("中老年,要补钙");
    149         }else {
    150             System.out.println("老年人,多晒晒太阳");
    151         }
    152         System.out.println("程序结束");
    153     }
    154 }
    155 
    156 
    157 
    158 while循环  
    159 在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
    160 语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。
    161 package whiledemo;
    162 /**
    163  * 循环4要素
    164  * 1,初始化
    165  * 2,条件判断
    166  * 3,循环体
    167  * 4,迭代
    168  * @author tang
    169  *
    170  */
    171 public class WhileDemo {
    172     public static void main(String[] args) {
    173         int i = 0;//初始化操作
    174         while(i < 1000){//条件判断的操作
    175             //循环体
    176             System.out.println(i);
    177             //迭代  就是让条件判断趋向于false的操作
    178             i ++;
    179         }
    180         System.out.println("程序结束");
    181     }
    182 }    
    183 
    184 
    185 
    186 package test;
    187 
    188 import java.util.Scanner;
    189 
    190 /**
    191  * 练习3:商场推出幸运抽奖活动 根据抽奖规则计算会员卡号各位数字之和为16,则为幸运会员
    192  * @author tang
    193  *
    194  */
    195 public class Test03 {
    196     public static void main(String[] args) {
    197         Scanner input = new Scanner(System.in);
    198         System.out.println("请输入四位数的会员卡卡号");
    199         //接收到用户输入的卡号
    200         int cardNo = input.nextInt();
    201         //求出卡号千位上的数字
    202         int k  = cardNo/1000;
    203         //求出卡号百位上的数字
    204         int b = (cardNo%1000)/100;
    205         //求出卡号十位上的数字
    206         int s = (cardNo%100)/10;
    207         //求出卡号个位上的数字
    208         int g = cardNo%10;
    209 //        求和
    210         int sum = k + b + s + g;
    211         String message = (sum == 16)?"恭喜你,中奖了!":"很遗憾,本次没有中奖";
    212         System.out.println(message);
    213         
    214         
    215     }
    216 }
    217 
    218 
    219 switch多分支选择结构 
    220 根据表达式值的不同执行许多不同的操作
    221 switch (表达式)  {
    222 case 值1 : 
    223 语句序列;
    224 [break];
    225 case 值2:
    226  语句序列;
    227 [break] ;
    228      … … …      … …
    229 [default:
    230  默认语句 ;]
    231 } 
    232 1.switch语句会根据表达式的值从相匹配的执行,一直执行到break标签处
    233 语句处或者是switch语句的末尾。与任一case值不匹配,则进入default语句(如果有的话)  
    234 2.只能处理等值条件判断的情况,且表达式必须为byte,short,int或char类型 ,String 不能是double,float.  long
    235 3.常量值必须是与表达式类型兼容的特定的一个常量
    236 4.不允许有重复的case值 
    237 5.default子句为可选
    238 package switchdemo;
    239 /**
    240  * 随机生成一个字母,并且判断该字母的类型
    241  * 
    242  * @author tang
    243  *
    244  */
    245 public class Test {
    246     public static void main(String[] args) {
    247         int n = (int)(26*Math.random());//产生一个[0,25)的随机数
    248         char flg = (char)(97+n);//产生一个字母
    249         
    250         switch (flg) {
    251         case 'a':
    252         case 'e':
    253         case 'i':
    254         case 'o':
    255         case 'u':
    256             System.out.println("产生了一个元音字母"+flg);
    257             break;
    258         case 'w':
    259         case 'y':
    260             System.out.println("产生了一个半元音字母"+flg);
    261             break;
    262         default:
    263             System.out.println("产生了一个辅音字母"+flg);
    264             break;
    265         }
    266     }
    267 }
    268 
    269 
    270 
    271 十进制转化成二进制和十进制转化成二进制小数
    272 do-while:
    273 先执行,后判断。
    274 while:
    275 先判断,后执行。
    276 While和dowhile的区别:
    277 Dowhile总是保证循环体会被至少执行一次!这是他们的主要差别
    278 
    279 do-while语句
    280 package Test;
    281 
    282 import java.util.Scanner;
    283 
    284 /**
    285  * 从键盘输入某个十进制小数,转换成对应的二进制小数并输出。
    286  * @author Administrator
    287  *
    288  */
    289 
    290 public class D2Bpoint {
    291     public static void main(String[] args) {
    292         Scanner input = new Scanner(System.in);
    293         System.out.println("请输入一个十进制的小数:");
    294         double d = input.nextDouble();
    295         double  mul = d;
    296         StringBuffer buffer = new StringBuffer("0");
    297         int count = 0;
    298         do{
    299             double result = mul*2;
    300             int i = (int)result;
    301             buffer.append(i);
    302             count++;
    303             if(count == 7){
    304                 break;
    305             }
    306             mul = result - i;
    307         }while(mul != 0);
    308         System.out.println(d+ "转化成二进制小数位:"+buffer);
    309     }
    310 
    311 }
    312 
    313 
    314 package Test;
    315 /**
    316  * 6.从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。
    317  * @author Administrator
    318  *用2整除十进制整数,可以得到一个商和余数;再用2去除商,
    319  *又会得到一个商和余数,如此进行,直到商为小于1时为止,
    320  *然后把先得到的余数作为二进制数的低位有效位,
    321  *后得到的余数作为二进制数的高位有效位,依次排列起来。
    322  */
    323 import java.util.Scanner;
    324  
    325 public class Test10to2 {
    326     public static void main(String[] args) {
    327         Scanner input = new Scanner(System.in);
    328         System.out.println("请输入一个十进制的整数:");
    329         int num = input.nextInt();
    330         int num2 = num;
    331         String str = "";
    332         do{
    333             int div = num/2 ;
    334             int mod = num%2 ;
    335             str = mod + str;
    336             num = div;
    337         }while(num != 0);
    338         System.out.println(num2+"转换成二进制为:"+str);
    339        
    340        
    341        
    342        
    343     }
    344  
    345 }
  • 相关阅读:
    Spring格式化注解
    Mysql 慢查询和慢查询日志分析
    jQuery中的end()方法
    webService学习笔记
    让Hibernate和触发器协同工作
    JavaScript中的setInterval用法
    jQuery中事情的动态绑定
    mongoDB如何处理多对多关系
    新生儿信息管理系统在线帮助
    MySQL数据库安装与配置详解
  • 原文地址:https://www.cnblogs.com/meizhoulqp/p/11234221.html
Copyright © 2011-2022 走看看