java开头流程_java基础 (流程控制)

java基础之流程控制语句

一、位运算符、条件运算符、扩展赋值运算符

先看图, 总结记录一下这些可以偷懒的奇淫巧计的符号,其他符号比较通用,我们主要讲个讲红线框住的符号

a0a39c1ffbeed3000cf81b551762f9aa.png

位运算符

< 1、 & | ^ ~ >

# 对数值的二进制位作比较

#实例

a = 0011 1100

b = 0000 1111

a&b = 0000 1100a和b同位置的数值进行与运算,如果同位都是0就等于0,1就等于1;一个1一个0取0

a|b = 0011 1111a和b同位置的数值进行或运算,如果同位都是0就等于0,1就等于1;一个1一个0取1

a^b = 0011 0011a和b同位置的数值进行是否相同的比较,如果相同,就等于0;如果不相同,就等于1

~b = 1111 0000这个就是简单的取反

# 在shell中& | ^ 的含义:

&有两个含义:

1是标准输出导向到哪里 2 把命令放到后台执行

实例:

ls -l > out.file 2>&1 & 等同于ls -l 1> out.file 2>&1 &

# >和1>是一个意思,通常是省略了; 2代表错误输出的意思,所以2>&1 表示如果前面命令执行后出现错误把错误信息重定向到1那,而1又导向out.file,最后一个&代表后台执行! 所以整条命令为把ls -l的正确错误的信息都重定向到out.file,并在后台执行!

|表示命令的管道, ^ 表示匹配开头

< 2、 << >> >

# 在shell中: <>表示,以追加的方式把数据重定向到某个文件或某个命令中

# 对数值在二进制位进行位的移动

# >>是向后位进行移动,等同于/2(除以2); << 是向前位进行移动,等同于*2(乘以2),看下例:

0000 00011

0000 00102

0000 00113

0000 01004

0000 10008

真题: 2变成16什么方式最快?

答: 当然是位运算 2<<3啦,直接跟底层打交道! (表示2这个值向前移动3位,一位是2,结果: 2*2*2*2=16)

条件运算符

< ? : > 用于三目运算(三元表达式)

# 在shell的通配符中: ?代表0个或多个任意字符(非换行符、制表符);

# 在正则表达式中: ?是元字符,表示匹配0个或多个前置字符

使用语法:

判断表达式 ? yes : no 如果判断表达式结果为true,则结果取yes,否则取no

实例:

public class hello {

public static void main(String[] args){

int score = 50;

String type = score > 60 ? "no" : "yes";

System.out.println(type);

}

}

返回:yes

#python中的三目运算(三元表达式)

用法格式:

a=1

b=2

c = b-a if b>a else a-b 如果表达式结果为真,则返回b-a,否则返回a-b

# shell中的三目运算(三元表达式)

a=''

[[ -z a ]] && echo "a为空字符串" || echo “a不为空”

# 如果a为空字符串,则打印a为空字符串,否则打印a不为空

扩展赋值运算符

< += -= *= /= >

public class Hello{

public static void main(String[] args){

int a = 2;

int b = 4;

a+=b;//a=a+b

a-=b;//a=a-b

a*=b;//a=a*b

a/=b;//a=a/b

System.out.println(a)

}

}

二、包机制

# 定义包名

格式:

package 包文件名1.包文件名2.包文件名3;

# 必须写到最上面

# 导入包名

格式:

import 包文件名1.包文件名1.包文件名1.类名;

三、用户交互

# 咋java5加入了java.util.Scanner的用户交互类!

基本语法:

Scanner scanner = new Scanner(System.in);

String str = scanner.next();

# 1、next()必须在输入有效字符后才能结束输入

2、当遇到有效字符后的空格时,自动截取掉空格后面的字符

3、不能输入空白字符

String str1 = scanner.nextLine();

# 1、可以获取有效字符之间的空格字符

2、使用完后记得关闭扫描器

四、选择性语句

if..else if ...

< # 用法一、>

if (x != 0 && y !=0 && x < y){

System.out.println(y);

}else{

System.out.println(x);

}

if (x <= 0){if (x==0) sign x=0;else x=-1; }

< # 用法三、>

if x > y ? x : y

< shell中的if语法>

终端命令式:if [[ -z '' ]]; then echo " ''是一个空字符串"; else echo " ''不是一个空字符串 "; fi

三元表达式: a=2;b=3;[[ b -gt b ]] && echo "b大于a" || echo "a大于b"

< 脚本式: >

if [[ 表达式1 ]];then

执行主体1

elif [[ 表达式2]]

执行主体2

else

执行主体3

fi

switch多重选择

# 用法:

Scanner scanner = new Scanner(System.in);

System.out.println("Select an option (1,2,3,4)")

int choice = scanner.nextInt();

switch (choice){//choice表示一个用户输入的选项变量

case 1;

System.out.println("这是选择1");

break;

case 2:

System.out.println("这是选择2");

break;

case 3:

System.out.println("这是选择3");

break;

case 4:

System.out.println("这是选择4");

break;

default:

System.out.println("输入的选择无效");

break;

}tioaj

# 为了不忘记shell知识,在这也记录对比一下

# 在shell的case多选择语句与java中的switch是很相似的,

用法如下:

#!/bin/bash

read -p "请输入你选择的项: " choice

case choice in

"A")

执行体

;;

"B")

执行体

;;

"c")

执行体

;;

*)

执行体

;;

esac

五、循环控制语句

while循环

# while (条件表达式){

程序主体

}

# 实例

public class Operation{

public static void main(String[] args){

int a = 0;

int total = 0;

while (a<100){

a++;

total += a;

}

System.out.println(total);

}

}

do while

< # 用法: >

do{

程序主体

}

while(条件表达式);

public class Deamo1{

public static void main(String[] args){

int a = 0;

int sum = 0;

do{

a++;

sum += a;

}while(a<100);

System.out.println(sum);

}

}

while循环是先判断条件,再执行主体

do while 是先执行主体,再去判断条件,且do while必被执行一次主体,不管条件是否满足1

代码如下:

public static void main(String[] args){

int a = 0;

while(a<0){

System.out.println(a);

}

System.out.println("------------------");

do{

System.out.println(a);

}while(a<0);

}

# 输出:

--------------------

0

说明:即使条件不符合,do while依然可以执行一次!

for循环

< java# 用法:>

for(条件表达式){

执行主体

}

< java# 实例1 >

//求num以内的质数

public class Zhishu{

public static void main(String[] args){

//创建一个扫描器对象

Scanner scanner = new Scanner(System.in);

System.out.println("请输入求质数的范围数:");

int num = scanner.nextInt();

if (num >=2){

for (int i=2;i<=num;i++){

int status = 0;

for (int j=2;j

if (i%j==0){

status = 1;

break;

}

}

if (status==0){

System.out.println(i);

}

}

}

}

}

< java# 实例2 >

----------------------------------------------------------------------------------

方式一、

for i in 1 2 3 4

do

echo $i

done

方式二、

for i in {1..10}

do

echo $i

done

方式三、

for ((i=0;i<=10;i++));

do

echo "nice$i"

done

加强for循环

语法:

for(表达式){

//代码块

}

范例:

public class Deamo(){

public static void main(String[] args){

int[] demoarr = {1,2,3,4};

for (int x:demoarr){

System.out.println(x);

}

}

}

特点:只能用于遍历该数组元素,遍历效率高!六、跳转控制语句

六、跳转控制语句

break

# 跳出整个循环体,执行循环体下面的内容

continue

# 跳出当前这一次循环,执行下次循环

七、总结

1、三种循环控制语句的区别:

1、for循环和while循环是先判断条件是否成立,然后再决定是否执行循环体 (先判断后执行)

2、do{}while是先执行一次循环体,然后再对条件进行判断,是否继续执行循环体(先执行后判断),所以do..while循环至少执行一次循环体!

2、for与while的区别:

1、for循环结构中的变量定义在循环体中,所以只能在循环体中使用,而while的变量定义在循环体外,所以可以在循环体外

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值