java流程控制结构不包括_Java的流程控制结构,细节详解

位运算符

&与 |或 ^异或 <>右移 >>>无符号右移  ~取反

注意:位运算是针对整数运算的

int i = 6,j = 10;

方式一:利用第三方变量

int k = i;

i = j;

j = k;

方式二:利用加减法

i = i + j;

j = i - j;--->j = i + j - j;-> j = i;

i = i - j;--->i = i + j - i;-> i = j;

方式三:异或运算

i = i ^ j;

j = i ^ j;---> j = i ^ j ^ j;-> j = i;

i = i ^ j;---> i = i ^ j ^ i;-> i = j;

i^=j;j^=i;i^=j;

为什么第三种方式的效率更高却是第一种方式用的更广?

第一种方式的可阅读性更高;第三种方式只能用于运算整数,第二种方式可以用于运算数值型但是不能用于交换其他类型的值例如字符串类型,而第一种方式可以交换任意一种类型的值

a52e2da15d1076ea13b4ff1cce625d30.png

流程控制

顺序结构

从上倒下、从左到右一次运行

分支结构

判断结构

if(逻辑值){

代码块;

}

4c6aeec2f9491b5718604d0b3e0270c2.png

如果代码块只有一句,{}可以省略不写

if(逻辑值){

Code1;

} else {

Code2;

}

4b38f0a2da23771aa6fca7eb77c33604.png

练习:获取较大的数

if(逻辑值1){

Code1;

} else if(逻辑值2) {

Code2;

} else {

Code3;

}

练习:输入月份,输出季节---3-5---Spring,6-8-Summer,9-11-Autumn,12-2-Winter

选择结构

switch(表达式){

case 情况1 : Code1;break;

case 情况2 : Code2;break;

……

default:Code;break;

}

注意:

1.表达式的结果是byte/short/int/char

2.从JDK1.7开始,允许匹配字符串

3.从JDK1.5开始,允许匹配枚举常量

4.当选项后边都有break的时候,选项之间的顺序没有影响;如果有一个或者以上选项之后没有break,从匹配到该选项的地方开始执行,知道遇到break或者{}结束

int i = 0;

switch(i){

case 0: int j = 0;

case 1: j+=1;

case 2: j+= 2;

case 3:j+=3;

default:j+=4;

}

System.out.printlnt(j);---报错

练习:从控制台输入两个数字以及运算符号(+、-、*、/),将两个数字按照指定的运算进行并输出结果

循环结构

while(逻辑值){

Code;

}

249e386e62997d568c3d48df10599a07.png

循环的要素:定义循环变量、控制判断条件、改变循环变量

例子:

1.求1到任意一个数的和

2. 输入任意一个整数,输出这个整数的位数

练习:

输入一个整数,求各位数字之和

1 Scanner scanner=new Scanner(System.in);2 String string=scanner.nextLine();3 int sum=0;4 for (int i = 0; i < string.length(); i++) {5 sum+=Integer.valueOf(String.valueOf(string.charAt(i)));6 }7 System.out.println(sum);

求300以内7的倍数

for (int i = 0; i < 300; i++) {

if (i%7==0) {

System.out.println(i);

}

}

输入一个整数,转化成二进制显示

1 Scanner scanner=new Scanner(System.in);2

3 int a=scanner.nextInt();4

5 String nbInteger=Integer.toBinaryString(a);6

7 System.out.println(nbInteger);

如果while循环的代码块只有一句,{}可以省略

do{

Code;

} while(逻辑值);

05938cd0ad35fb0e232b455e715ef8a8.png

do-while循环的代码块至少执行一次

for(定义循环变量; 控制判断条件; 改变循环变量){

代码块;

}

35843f35fb6cf0e285edc1288119bfb0.png

练习:求500以内6的倍数的和

for循环的循环变量在循环结束之后不可使用,while循环可以

当循环的次数固定或者步长固定建议使用for循环

当循环次数不定或者变化不规律的时候建议使用while

//希望用户输入一个偶数

Scanner s = new Scanner(System.in);

int even = s.nextInt();

while(even % 2 != 0){

even = s.nextInt();

}

for(;even % 2 != 0; ){

even = s.nextInt();

}

练习:打印九九乘法表

1 for (int i = 1; i <=9; i++) {2

3 for (int j = 1; j <= i; j++) {4

5 System.out.print(j+"*"+i+"="+i*j+"\t");6

7 }8

9 System.out.println("");10

11 }

1*1=1

1*2=2  2*2=4

1*3=3 2*3=6  3*3=9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值