java复习第三天 运算符 和 流程 控制语句 基础题

运算符整体特点:必须有一个结果进行返回


1.赋值运算符
=:最基本的赋值运算符,把右边的内容赋值给左边
扩展赋值运算符:+=,-=,*=,/=,%=
a += b; -> a = (a的数据类型)(a+b);
扩展赋值运算符隐含了强制转换
2.关系运算符
特点:结果都是boolean类型,要么true,要么false
==:是否相等的意思
!=:是否不等于的意思
instanceof:判断一个值是否是某一个引用类型,后面面向对象的时候会用到
3.逻辑运算符
特点:可以将多个关系表达式连接起来,最终的结果也是boolean类型

&和&&:结果都是一样的,有false则false,无false则true
|和||:结果都是一样的,有true则true,无true则false
^:相同false,不同true
!:非真即假,非假即真
4.位运算符
注意:都是针对补码进行操作的,然后转换成原码的十进制

左移:对补码进行左移,最高位直接丢弃,右边补0
左移:对补码进行右移,最高位是1就补1,是0就补0,右边的二进制就丢弃
针对正整数的左移和右移几位,就相当于乘以或者除以2的几次方

异或:针对多个数值的补码进行逐位异或,相同取0,不同取1
取值特点:一个值异或另外一个值两次,结果是它本身
5.三元运算符
格式:
(关系表达式)?表达式1:表达式2;
执行流程:
计算关系表达式的值
如果是true就执行表达式1
如果是false就执行表达式2
6.键盘录入
1.导包
import java.util.Scanner;
2.创建对象
Scanner sc = new Scanner(System.in);
3.接收数据
int i = sc.nextInt();
float f = sc.nextFloat();
...
String s = sc.nextLine();
7.if语句
格式:
if(关系表达式1){
语句体1
}else if(关系表达式2){
语句体2;
}else if(关系表达式3){
语句体3;
}
...
else{
语句体n+1;
}
执行流程:
计算表达式1的值
如果值是true就执行语句体1
如果值是false,就计算关系表达式2的值
如果值是true就执行语句体2
如果值是false,就计算关系表达式3的值
如果值是true就执行语句体3
如果值是false,就计算关系表达式n的值
如果值是true就执行表达式n
如果值是false,那么就执行else里面的语句体n+1
注意事项:
if语句后面的小括号里面的值必须是boolean类型的

if语句如果没有大括号,默认控制一条语句;如果想要控制多条语句,必须加上大括号

1.如何实现对两个整数变量的值进行互换。
设两个整数变量为a和b
int a ;
int b ;
int c ;
c=a ;
a=b;
b=c;


2.三元运算符的格式是什么?
  执行流程是什么?

三元运算符的格式: 
书写格式:
变量1>变量2?变量1:变量2
如果为ture 则打印变量1
如果为false,则打印变量2

  
3.使用三元运算符完成如下练习
比较两个数是否相等
获取两个数中最大值
获取三个数中最大值
(1)
Scanner sc = new Scanner(System.ln);
int a = sc.nextInt();
int b = sc.nextInt();
if(a==b){
System.out.println("这两个数相等");
}
else{
System.out.println("这两个数不等");
}
(2)
Scanner sc = new Scanner(System.ln);
int a = sc.nextInt();
int b = sc.nextInt();
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}


(3)Scanner sc = new Scanner(System.ln);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if(a>b){
if(b>c){
System.out.println(b);
}else{
if(b>c){
System.out.println(b);
}else{
System.out.println(c);
}
}
}



4.流程控制语句有几种?
顺序
循环
选择








5.if语句的格式有几种?注意事项是什么?分别在什么时候使用?
格式1:
if(条件表达式){
语句1
}else{
语句2
}
格式2:
if(条件表达式1){
语句1
}else if(条件表达式2){
语句2
}else if(条件表达式3){
语句3
}


6.看程序写结果:请自己独立分析,先不要编译运行。
第一题
int x = 1,y = 1;


if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);  




x=1,y=1;
---------------------------------------------------
第二题
int x = 1,y = 1;


if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);


x=1
y=1




---------------------------------------------------
第三题
int x = 1,y = 1;


if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);


x=7
y=1


---------------------------------------------------
第四题
int x = 1,y = 1;


if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);


x=7
y=1




---------------------------------------------------
第五题
boolean b = true;


if(b==false) 
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");






输出
b
---------------------------------------------------
10.根据用户键盘录入的整数值,求出对应的阶乘。列入5的阶乘就是5*4*3*2*1


public class Test3 {
public static void main(String[] args) {



Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int s =1;
for(int i=1;i<=a;i++){

s *= i;
}
System.out.println(s);


}
}




11.根据用户键盘录入的整数值,打印对应层级的数字金字塔图案
列入用户输入3那么打印图案如下所示:
 1
222
33333
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
    int a  =  sc.nextInt();
    for(int i=0;i<a;i++){
    System.out.print("\n\t");
    for(int j=i;j<a;j++){
    System.out.print(" ");
    }
    for(int j=0;j<=2*i;j++){
    System.out.print(i+1);
    }
      }
}
    }
   











12.输出1-1000之内的质数,质数是大于1的自然数,质数是除了1和它自身不能被其它数整除的数。比如3就是一个质数,
因为它只能被1和3整除,又比如4不是一个质数,因为它可以同时被1,2,4整除




public class Test4 {
public static void main(String[] args) {
int z;
for(int i = 1; i < 1000 ; i++ ) {
for( z = 2 ; z<= i/2;z++ ){
if( i % z == 0) {
break;
}
}
if(z>(int)i/2){
System.out.println(i);
}
}









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值