常用运算符与流程控制

1、常用运算符

a++与++a的区别

  • a++:先赋值,再自加1;

  • ++a:先自加1,再赋值;

例a=6;

表达式a的输出结果c的输出结果
c=a++;76
c=++a;77
c=a--;65
c=--a;55
package net.zx.j2se.day02;
​
public class Text07 {
    public static void main(String[] args) {
        int a=21;
        int b=9;
        //一、加减乘除
         //+,-,*,/,%,++,--
         //c= a++ ;  先将a的值赋值给c 再将变量a中的值自加1 
         //d= ++b  ; 先将变量b中的值自加1 再将b的值赋值给d 
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);   //取整
        System.out.println(a%b);   //取余
         int c=a++;
        int d=++b;
        System.out.println(c);
        System.out.println(d);
        //二、比较运算符
         //==,!=,>,<,>=,<=
        System.out.println(a==b);
        System.out.println(a!=b);
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a>=b);
        System.out.println(a<=b);
        //三、逻辑运算符
         //&&,||,&,|
        System.out.println(a>5&&a<30);
        System.out.println(b>2||b<9);
        //四、条件运算符
         //表达式 ? 值1 : 值2
        //如果表达式的结果为true 则返回值1 否则返回值2
        System.out.println(a>b?a:b);
        System.out.println(a<b?a:b);        
    }
}

2、流程控制

1、选择结构

  • if

    package net.zx.j2se.day02;
    ​
    public class Text08 {
        public static void main(String[] args) {
            int a=13;
            int b=22;
            if(a>b){
                System.out.println('A');
            }
            System.out.println('B');
        }
    }

  • if···else···

  • package net.zx.j2se.day02;
    ​
    public class Text09 {
        public static void main(String[] args) {
            int a=23;
            int b=42;
            if(a>b){
                System.out.println('A');
            }else{
                System.out.println('B');
            }
            System.out.println("执行结束!");
        }
    ​
    }
    package net.zx.javase.ch02.test;
    
    import java.util.Scanner;
    public class IFTest {
    
        public static void main(String[] args) {
            //test1();
            test2();
        }
    
        /**
         * 1.需求:if示例,从键盘接收两个数字,再接收一个符号,然后进行运算
         * -------请输入第一个数字:9
         * -------请输入第二个数字:31
         * -------请输入运算符号:+
         * -------9+21=30
         */
        public static void test1(){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第一个数字:");
            int i = sc.nextInt();
            System.out.println("请输入第二个数字:");
            int j = sc.nextInt();
            System.out.println("请输入运算符号:");
            String s = sc.next();
    
            // ==比较的地址  String的equals()比较的是内容  ===>  Object类equals()比较的是地址
            if(s.equals("+")){
                System.out.println(i + " + " +j +" = "+(i+j));
            }else{
                System.out.println("不是+运算符!");
            }
        }
    
        /**
         * 2.需求:飞机票在淡季是有优惠政策的,而放假期间是没有优惠的,
         * 假设在元旦三天(1.01---1.03),
         * 五一三天(5.01---5.03),
         * 十一七天(10.01---10.07)无任何优惠,
         * 除了以上13天,都打8折, 请输入您哪天订票,以及票价(自己设定一个吧),
         * 输出应付多少钱?
         */
        public static void test2(){
            Scanner sc = new Scanner(System.in);
    
            System.out.println("请输入订票日期:");
            double date = sc.nextDouble();
            System.out.println("请输入订票票价:");
            double price = sc.nextDouble();
    
            if((date>=1.01 && date<=1.03) || (date>=5.01 && date<=5.03) || (date>=10.01 && date<=10.07)){
                System.out.println("您的票价:"+price);
            }else{
                System.out.println("您的票价:"+price*0.8);
            }
        }
    
    }

  • if···else···嵌套

package net.zx.j2se.day02;
​
public class Text10 {
    public static void main(String[] args) {
        int a=42;
        if(a>60){
            System.out.println('A');
        }else if(a>50){
            System.out.println('B');
        }else if(a>40){
            System.out.println('C');
        }else {
            System.out.println('D');
        }
        System.out.println("执行结束");
    }
​
}
 
  • switch

package net.zx.j2se.day02;
​
public class Text11 {
    public static void main(String[] args) {
        int a=3;
        switch(a){
        case 1:
            System.out.println('A');
            break;      
            \\如果相同则执行 当前选项中的内容 并且将后面所有选项中的内容都执行一遍
            \\这种现象为switch穿透,使用break 可阻断穿透现象
        case 2:
            System.out.println('B');
            break;
        case 3:
            System.out.println('C');
            break;
        default:
            System.out.println("退出");           
        }
    }
}
​

2、循环结构

  • for

       猜数字游戏

  • package net.zx.j2se.day02;
    ​
    import java.util.Scanner;
    ​
    /*
     * 1、猜数字的游戏(GuessNumber)
     * 游戏运行时产生一个1-100之间的随机整数,要求用户从控制台输入数字,
     * 若输入的数字比产生的数字小,则输出:“太小了,再大一点!”;
     * 若输入的数字比产生的数字大,则输出:“太大了,再小一点!”,
     * 若输入的数字和产生的数字相等,则输出:“恭喜你猜对了!”,
     * 若用户猜了7次还未猜对,则输出:“你太笨了,下次再来吧!”然后退出程序。
     *    提示:
     *    (1)、int num=(int)(Math.random()*100); //java.lang.Math;
     *    (2)、Scanner in=new Scanner(System.in); // java.util.Scanner;
     *         int n = in.nextInt();
     */
    public class ForTest1 {
        public static void main(String[] args) {
            //产生一个1-100之间的随机整数
            int num = (int)(Math.random()*100+1);
            //计数器
            int count = 0;
            Scanner sc = new Scanner(System.in);
            //游戏开始
            for (int i = 0; i < 7; i++) {
                System.out.println("开始游戏,请输入:");
                int n = sc.nextInt();
                if(n<num){
                    count++;
                    System.out.println("太小了,再大一点!");
                }else if(n>num){
                    count++;
                    System.out.println("太大了,再小一点!");
                }else if(n==num){
                    System.out.println("恭喜你猜对了!");
                    break;
                }
            }
            if(count==7){
                System.out.println("你太笨了,下次再来吧!");
            }
        }
    }
  • while

  • 编写1~100之间的奇数和
package net.zx.javase.ch02;
import java.util.Scanner;
/**
 *while
 */
public class WhileDemo {
​
    public static void main(String[] args) {
        System.out.println("和:"+ add());
        print();
    }
​
    /*
     * 需求:编写从1-100之间的奇数的和,显示结果。(while)
     */
    public static int add(){
        int sum = 0;
        int i = 1;
        while (i<=100){
            if(i%2!=0){
                sum+=i;
            }
            i++;
        }
        return sum;
    }

3、课后练习

  • 判读年份是否为闰年,(年份能被4整除 且不能被100整除) 或者能被400整除

    package net.zx.j2se.day02;
    ​
    import java.util.Scanner;
    ​
    public class Text12 {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入一个年份:");
            int a=sc.nextInt();
            if(a%4==0&&a%100!=0||a%400==0){
                System.out.println(a+"是闰年");
            }else{
                System.out.println(a+"不是闰年");
            }
        }
    }

  • 输出3个数中的最大数

package net.zx.j2se.day02;
​
import java.util.Scanner;
​
public class Text13 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int a=sc.nextInt();
        System.out.println("请输入第二个数:");
        int b=sc.nextInt();
        System.out.println("请输入第三个数:");
        int c=sc.nextInt();
        int max=a;
        if(max<b){
            max=b;
        }
        if(max<c){
            max=c;
        }
        System.out.println(c);
    }
}
  • 判断一个三位数是否为水仙花数(这个数的个,十,百位数的三次方的和等于这个数)

    如: 153 111 + 555 + 333 == 153`
package net.zx.j2se.day02;
​
import java.util.Scanner;
​
public class Text14 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个三位数:");
        int n=sc.nextInt();
        int a=n/100;
        int b=n%100/10;
        int c=n%10;
        if(n==a*a*a+b*b*b+c*c*c){
            System.out.println(n+"是水仙花数");
        }else{
            System.out.println(n+"不是水仙花数");
        }
    }
}

将3个数按从小到大排序并输出

package net.zx.j2se.day02;
​
import java.util.Scanner;
​
public class Text15 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int a=sc.nextInt();
        System.out.println("请输入第二个数:");
        int b=sc.nextInt();
        System.out.println("请输入第三个数:");
        int c=sc.nextInt();
        int t;
        if(a>b){
            t=a;
            a=b;
            b=t;        
        }
        if(b>c){
            t=b;
            b=c;
            c=t;            
        }
        if(a>b){
            t=a;
            a=b;
            b=t;
        }
        System.out.println("从小到大排序:");
        System.out.println(a+"  "+b+"  "+c);
    }
}

编写一个简易计算器

package net.zx.j2se.day02;
​
import java.util.Scanner;
​
public class Text16 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("______________计算器______________:");
        System.out.println("请选择算法:1、加法  2、减法    3、乘法    4、除法");
        int n=sc.nextInt();
        System.out.println("请输入第一个数:");
        int num1=sc.nextInt();
        System.out.println("请输入第二个数:");
        int num2=sc.nextInt();
        switch(n){
        case 1:
            System.out.println(num1+num2);
            break;
        case 2:
            System.out.println(num1-num2);
            break;
        case 3:
            System.out.println(num1*num2);
            break;
        case 4:
            System.out.println(num1/num2);
            break;
        default:
            System.out.println("选择出错,请退出!");
        }
    }
}
  • 打印出金字塔

    package net.zx.j2se.day02;
    import java.util.Scanner;
    ​
    /**
     * 在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:
     *        A
     *       BBB
     *      CCCCC
     *     DDDDDDD
     *    EEEEEEEEE
     */
    public class ForTest2 {
    ​
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
    ​
            for (int i = 1; i <=n; i++) {
                //空格
                for (int s = 0; s < n-i; s++) {
                    System.out.print(" ");
                }
                // 字母
                for (int k = 0; k < 2*i-1; k++) {
                    char c = (char)('A'+(i-1));
                    System.out.print(c);
                }
                System.out.println();
            }
    ​
        }
    }

  • 将整数倒置

    package net.zx.j2se.day02;
    ​
    /**
     * 编写程序,将一个整数倒排过来,例如:给定整数:735678500,得到的结果:5876537。
     */
    public class ForTest4 {
    ​
        public static void main(String[] args) {
            int num = 735678500;
            while (num%10==0){
                num/=10;
            }
            System.out.println("num = "+num);  //num = 735678500
    ​
            while (num!=0){
                int a = num%10;
                System.out.print(a);  //5876537
                num/=10;
            }
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值