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 }
原文地址:https://www.cnblogs.com/meizhoulqp/p/11234221.html