第三天
今日内容
运算符的补充StringRandomScanner程序的运行结构 -------》分支语句
运算符的补充
1. 位运算符
按位取反 ~
按位&
按位 |
按位 ^
2. 移位运算符
>>
>>>
<<
3. String字符串(引用数据类型)
Length()
charAt()
equals()
如何把基本数据类型转换成字符串
int a = 3;
String str = "" + a;
如何把字符串转换成基本数据类型
注意:字符串里面必须是所对应的基本数据类型的值
1. 把字符串转换成int
Integer.parseInt(str)
2. 把字符串转换成 double
Double.parseDouble(str);
Random 随机数
在使用引用数据类型的时候都需要去类库把对应的类给引用过来 ----导入jar包
但是String不需要导入因为 java.lang.*下的所有类都是都自动导入 不需要手动导入jar文件
如何使用
Random r = new Random();//创建对象
Scanner 控制台输入
如何使用 Scanner sca =new Scanner(System.in);class Demo
{
public static void main(String args[])
{
//创建对象
Scanner sca = new Scanner(System.in);
System.out.println("请输入一个整数。。。。");
//获取从控制台输入整数 注意输入的整数不能超过int的取值范围
int num = sca.nextInt();
System.out.println("控制台输入的整数是:"+num);
Scanner sca1 = new Scanner(System.in);
System.out.println("请输入一个小数....");
//输入一个小数
double d = sca1.nextDouble();
System.out.println("控制台输入的小数为:"+d);
Scanner sca2 = new Scanner(System.in);
System.out.println("请输入一个字符串....");
//输入一个字符串
String str = sca2.next();//如果输入的字符串中间的有空格的话 则取得时候控制之前的字符串
System.out.println("控制台输入为..."+str);
Scanner sca3 = new Scanner(System.in);
System.out.println("请输入一个字符串....");
//输入一个字符串
String str1 = sca3.nextLine(); //如果有空格的话 则使用该方法
System.out.println("控制台输入为..."+str1);
}
}
程序的运行结构
所有的java程序有三种运行结构
顺序结构 分支结构 循环结构
分支结构
什么是分支结构 ?
带有条件判断的语句
If条件判断
1. 单分支
if (boolean表达式)
{
要执行的语句块
}
2. 双分支
if (boolean表达式)
{
表达式1
}
else
{
表达式2
}
3. 多分支
有多重可能性会发生
if (boolean表达式)
{
表达式1
}
else if (boolean表达式)
{
表达式2
}
else if (boolean表达式)
{
表达式3
}
…
else
{
表达式n
}
Switch条件判断
switch(变量)
{
case常量:
执行语句;
…
case常量:
执行语句;
default:
执行语句;
}
知识的补充
变量的作用域:包括该变量的两个大括号之间,但是要从定义该变量的时候开始算起。局部代码块:定义在方法里面使用两个大括号包含起来的代码 ,在两个大括号之间的代码 就是属于局部代码块部分的代码。
自己补充
代码
/*
测试 .nextLine
*/
import java.util.Scanner;
class Test1
{
public static void main(String[] args)
{
Scanner sca = new Scanner(System.in);
System.out.println("请输入");
String str = sca.nextLine();
Scanner sca1 = new Scanner(System.in);
System.out.println("请输入1");
String str1 = sca1.next();
System.out.println("输出line"+"\t"+str);
System.out.println("输出"+"\t"+str1);
}
}
class Test3
{
public static void main(String[] args)
{
String str = "abcdetruedd";
String str1 = "";
String str2 = "";
for(int x = 0;x < 4;x++)
{
char c = str.charAt(x+5);
str1 += c;
}
boolean flag = Boolean.parseBoolean(str1);
for(int x = 1;x < 5;x++)
{
char c = str.charAt(x+5);
str2 += c;
}
boolean flag1 = Boolean.parseBoolean(str2);
/*如果提取出来的不是true也不是false,
用boolean flag = Boolean.parseBoolean()时候
会直接给flag赋默认初始值也会是false*/
System.out.println(flag);
System.out.println(flag1);
}
}
一些结论
1. main不是关键字,可以在作为变量名称。
2. 先!,再 &,最后 | , && 和 || 也是,先算&&,后算||
3. Integer.parseInt(str)可以直接转换所有的数字,然后,按照% /的方法取出各个位置数的字然后进行运算(前提是str都是数字,不然还要用charAt()来过渡)
4. Boolean.parseBoolean()也是可以的
5. Random是一个类类型数据,是一个在源码中的.java文件,所以要用import来手动导入jar包。而且若.java文件中有多个class,import必须声明在最最最上面,不能在两个class之间进行引用。
6. String也是引用数据类型,但是不用导入jar包。
7. Java的lang包下的不用手动导入,可以直接使用,因为会自动导入,不用再次手动导入。
8. .length() 的 ()不能忘记!
9. 关于三目运算符注意:(三目运算符必须有结果,打印不叫有结果!!)
若三目运算中的执行表达式都需要打印,不能将执行语句直接用System.out.println();,可以将要打印的东西转换成字符串,再打印即可。如:
String result = str.equals(str1) ? "" + str.length() : "" + str.charAt(2);
System.out.println(result);
10. 关于.next()和.nextLine()的区别: 都可以接收字符串,但是若所需接收的字符串中有空格,.next()只能接收到空格之间的字符,而.nextLine()能接收包括空格(连续、不连续的多个或单个空格)在内的所有字符。
11. 引用数据类型比较用.equals
12. 写代码还是要先需求分析