从0开始学习Java week02

目录

一、String数据类型

1、如何声明String数据类型变量

2、String类型数据变量运算

二、进制数(了解)

1、如何定义不同进制数

三、运算符

1、运算符的分类

2、运算符的优先级

四、三种基本流程结构

1、顺序结构

2、分支结构


一、String数据类型

1、如何声明String数据类型变量

String str = " ";

2、String类型数据变量运算

String类型变量可以和8种数据类型变量做链接运算,运算结果仍然是String类型。

String  str= "学号:";
int num = 20;
String con = str+num;
System.out.print(con);
System.out.println();
boolean b1 = true;
String con1 = con+b1;
System.out.print(con1);

输出为: 

//练习1
char c = 'a';
int i = 10;
String string = "hello";
System.out.println(c+i+string);//a式
System.out.println(c+string+i);//b式
System.out.println(c+(i+string));//c式
System.out.println((c+i)+string);//d式
System.out.println(string+i+c);//e式

 

括号优先计算。 

 a,d式:char类型和int类型运算时转成int类型,而a的ASCII码为97,所以最后输出为107hello。

b、c、e式:String类型变量做连接运算。

//练习2
System.out.println("*       *");
System.out.println('*'+'\t'+'*');//a式
System.out.println('*'+"\t"+'*');//b式
System.out.println('*'+'\t'+"*");//c式
System.out.println('*'+('\t'+"*"));//d式

 

a,c式:char和char做运算时会转成int类型。 

二、进制数(了解)

1、如何定义不同进制数

八进制:以数字0开头

int  i = 0127;

二进制:以0b或者0B开头

int i = ob110;

十六进制:以0x或者0X开头

int i = 0x110A;

三、运算符

1、运算符的分类

 a.算术运算符

 "/"除号:

int num1 = 5;

int num2 = 3;

int result = num1/num2;

System.out.print(result);

 输出为整数,因为,result、num1和num2都是整型,所以最后答案也是整型。

就算将result改成double型也是1.0。

若将result改成        double result1 = num1/(num2+0.0);或者double result1 = double num1/num2;则可以输出全部的结果。

 "%"取模:结果符号与被取模数相同,经常被用来判断能否被除尽。

int m = -12;
int n = 5;
int result = m%n;
System.out.print(result);

结果:   (m和n都为负数时,结果也是负数)

 "++":自增(前后)

int a1 = 10;
int b1 = ++a1;
System.out.println("a1="+a1+" b1="+b1);
int a2 = 10;
int b2 = a2++;
System.out.println("a2="+a2+" b2="+b2);

结果:

++ 在前,先自增后运算。++在后,先用再自增。

"--"同理。

练习:求出任意一个三位整数的个位十位百位

import java.util.Scanner;

/*练习:给出任意一个三位数求这个数的个位十位百位
 * 
 */
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int ge = num%10;
		int shi = num/10%10;
		int bai = num/100;
		System.out.println("个位为:"+ge);
		System.out.println("十位为:"+shi);
		System.out.println("百位为:"+bai);

	}

}

输出结果

b、赋值运算符

 常见的有:= ,+=,-=,/=,%=,*=

+=:int num = 2; num += 2;//num +=2;相当于num = num+2;

System.out.print(num);结果为4。

后面的同理。

区别:short s = 2;  s = s+2;//编译失败    s += 2;//不会改变变量本身的数据类型

c、比较运算符

比较运算符都是boolean类型的 ,只有两种取值,true和false。

==不能写成=。

d、逻辑运算符

异或:a,b相同时为false,不同时为true。

"&" 和"&&"的区别

boolean b1 = false;
int num1 = 10;
if (b1&(num1++ > 0)) {
System.out.println("yes");
}else {
System.out.println("no");
}
System.out.println("num1 = "+num1);
boolean b2 = false;
int num2 = 10;
if (b2&&(num2++ > 0)) {
System.out.println("yes");
}else {
System.out.println("no");
}
System.out.println("num2 = "+num2);

 

 &&为短路与,当前一个为false时将不会判断下一个,直接输出结果为false。

所以,num2不会++。

“ | ”和“ || ”同理。

 e、位运算符

位运算是直接对整数的二进制进行的运算。 

<<:相当于*2

>>:相当于/2 

d、三元运算符

格式:(条件表达式)?表达式1:表达式2;

当条件表达式为true时,执行表达式1。

当条件表达式为false时,执行表达式2。(表达式1和表达式2要为同类型)

三元表达式和if-else语句的联系和区别

1、三元表达式可以简化if-else语句。

2、三元表达式必须要有返回值。

3、if后代码块可以有多个语句。

练习1:比较两个数并选出最大的数。

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int m = 12;
		int n = 5;
		int max = (m>n)?m:n;
		System.out.println(max);
	}

}

练习2:比较十个数选出最大值 

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int m = 12;
		int n = 5;
		int x = 78;
		int max1 = (m>n)?m:n;
		int max2 = (max1>x)?max1:x;
		System.out.println(max2);
	}

}

可以用三元运算写的都可以改成if-else语句。

例如练习1:

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int m = 12;
		int n = 5;
		int max = 0;
		if (m>=n) {
			max = m;
		}else {
			max = n;
		}
		System.out.println(max);
	}

}

2、运算符的优先级

只有单目运算符(单目运算符是指运算所需变量为一个的运算符) 、三元运算符和赋值运算符是从右到左运算的。

四、三种基本流程结构

1、顺序结构

程序从上到下顺序执行,时间没有任何判断和跳转。

2、分支结构

if-else语句三种结构

a.       if(conditions){

         执行代码块;

         }                                    

   

b.          if(conditions){

执行代码块;

}else{

执行代码块;

}

c.      if(conditions){

执行代码块;

}else if(conditions){

执行代码块;

}else{

执行代码块;

 

 学不动了,下次再来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值