1、常用运算符
a++与++a的区别
-
a++:先赋值,再自加1;
-
++a:先自加1,再赋值;
例a=6;
表达式 | a的输出结果 | c的输出结果 |
---|---|---|
c=a++; | 7 | 6 |
c=++a; | 7 | 7 |
c=a--; | 6 | 5 |
c=--a; | 5 | 5 |
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; } } }