1.代码观察
int a = 6--; System.out.println(a);
在Java中,后置递减运算符 --
只能在整型(int
)和长整型(long
)变量上使用,而且必须将 --
放在变量值的后面。因此,6--
是非法的,Java编译器会报错。
正确代码如下
int a = 6; a--; System.out.println(a);
输出结果为5
2.代码分析
System.out.println(5&9); //0000 0101 //0000 1001 //0000 0001 结果为1 System.out.println(5|9); //0000 0101 //0000 1001 //0000 1101 结果为13 System.out.println(5^9); //0000 0101 //0000 1001 //0000 1100 结果为12 System.out.println(~-5); //0000 0101(5) //1111 1011(-5) //0000 0100(~-5) 结果为4 System.out.println(5<<2); //0000 0101 //0001 0100(向左移两位) 结果为20 System.out.println(-5<<2); //1111 1011 //1110 1100(补码=反码+1) //1110 1011(反码=原码取反 符号位不变) //1001 0100(原码) 结果为-20 System.out.println(-5>>2); //1111 1011 //1111 1110(补码) //1111 1101(反码) //1000 0010(原码) 结果为-2 System.out.println(-5>>>2); //1111 1011 //0011 1110(补码) //0011 1101(反码) //0100 0010(原码) 结果为1073741822 System.out.println(5>>2); //0000 0101 //0000 0001 结果为1 System.out.println(5>>34); //0000 0101 //0000 0001 //34>32 右移34%32=2位 结果为1 System.out.println(97=='a'); //在ASCII编码中,字符'a'的编码值是97。 因此,表达式97 == 'a'在大多数编程语言中将会返回true, 表示97等于字符'a'的ASCII码。 System.out.println(5.0==5); //会输出false 这是因为 5.0 是一个 double 类型的浮点数,而 5 是一个 int 类型的整数。 尽管它们在数值上是相等的,但在Java中,它们是不同的数据类型。 Java的自动类型转换不会自动将整数转换为浮点数来进行比较,因此这个比较会返回false。 可写为System.out.println(5.0=(double)5); System.out.println(4>5 ^ 'c'>'a'); //4 > 5 的结果是 false,'c' 大于 'a' 的结果是 true。所以 'c' > 'a' 为 true。 当 false 和 true 用 ^ 运算时,结果是 true。 System.out.println((int)(char)(byte)-1); 结果为65535 类型转换
3.指定位置设置为1
问题描述:
将参数v的第n位置设为1,然后返回该结果值。
代码结构:
package com.briup.day2; public class Test3_SetOne { // ⽅法声明如下: public static int setBit(int v,int n){ // 提示:使⽤ | 及 << // 补全代码 return v | (1 << n-1); } public static void main(String[] args) { int r = setBit(10,3); System.out.println("r: " + r); //0000 1010 //0000 0001 //0000 0100(向左移n-1位) //0000 1110(v变为14) } } //将参数v的第n位置设为1,然后返回该结果值。 // 例如:setBit(10,3)返回14,因为10的二进制表示为1010,将第3位置为1后,变为1011,即14。
4.指定位置设置为0
问题描述:
将参数v的第n位置为0,然后返回该结果值。
代码结构:
package com.briup.day2; public class Test4_SetZero { // ⽅法声明如下: public static int setZero(int v,int n){ // 提示:使⽤ ~ 及 << // 补全代码 return v & ~ (1 << n-1); } public static void main(String[] args) { int r = setZero(10,2); System.out.println("r: " + r); //0000 1010 //0000 0001 //0000 0010(括号里的进行~运算) //1111 1101 //0000 1010 //0000 1000 } }
5.代码分析
分析下⾯⼏段代码,写出输出结果,最后运⾏程序进⾏验证
(1)
int b=5; if(b>4) System.out.println(b); else b--; System.out.println(b);
输出 5 5
(2)
public static void main(String[] args) { int b = 6; if (b > 5) { b--; System.out.println("b大于4"); } else { System.out.println("b不大于4"); } } }
输出 b不大于4
(3)
int age=45; if(age>20) { System.out.println("年轻⼈"); }else if(age>40){ System.out.println("中年⼈"); }else if(age>60){ System.out.println("⽼年⼈");
输出 年轻人
(4)
int a=80; switch(a) { case 90:{ System.out.println("优秀"); } case 80:{ System.out.println("⼀般"); } case 60:{ System.out.println("及格"); break; } case 50:{ System.out.println("基础弱"); } }
输出 一般 及格
(5)
int count=0; while(count>0); { System.out.println(count); }
输出 0
(6)
for (int i = 0; i < 5; i++) { System.out.print(i); i*=0.1; } System.out.println("循环结束");
输出 11111......(无限循环)
(7)
for(int i=0;i<3;i++) { System.out.println(i); if(i==1) { continue; } System.out.println("continue后的输出语句"); }
输出
0 continue后的输出语句 1 2 continue后的输出语句
(8)
for (int i = 0; i < 3; i++) { System.out.println(i); if (i == 1) { return; } System.out.println("return后的输出语句"); }
输出
0 return后的输出语句 1
6.九九乘法表
问题描述:
编写⼀个Java程序,实现如下效果的九九乘法表
代码结构:
for(int i = 1; i <= 9; i++) { for(int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + (i * j) + "\t"); } System.out.println(); }
7.素数问题
题目:
请编写一个Java程序,判断101-200之间有多少个素数,并输出所有素数
public class PrimeNumbers { public static void main(String[] args) { int count = 0; for (int i = 101; i <= 200; i++) { if (isPrime(i)) { System.out.print(i + " "); count++; } } System.out.println("\n101-200之间共有" + count + "个素数"); } public static boolean isPrime(int num) { if (num <= 1) return false; for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) return false; } return true; } }
8.月份计算
题目
请编写一个Java程序,实现从键盘输入月份,判断该月份属于哪个季节 【要求】 如果月份不在1-12之
间,则报错:输入月份有误 匹配月份,输出对应的季节 12-2冬 3-5春 6-8夏 9-11秋 使用java.util.Scanner类完成
import java.util.Scanner; public class Season { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入月份:"); int month = scanner.nextInt(); switch(month) { case 12: case 1: case 2: System.out.println("冬季"); break; case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; default: System.out.println("输入月份有误"); } } }
9.天数计算
题目
请编写一个Java程序,实现从键盘中输入年份 月份 日期,输出这一天是该年的第几天 【要求】 输入的
年份、月份、日期均为数字,不足10的用0x表示,如:1月1日为01 01 输入的年份、月份、日期之间用
空格隔开,如:2023 04 27
Scanner scanner = new Scanner(System.in); System.out.println("请输入年份 月份 日期(用空格隔开):"); int year = scanner.nextInt(); int month = scanner.nextInt(); int day = scanner.nextInt(); int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (isLeapYear(year)) { days[1] = 29; } int dayOfYear = 0; for (int i = 0; i < month - 1; i++) { dayOfYear += days[i]; } dayOfYear += day; System.out.println("这一天是该年的第" + dayOfYear + "天"); } public static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
-
完全数问题
题目
请编写一个Java程序,实现输入一个数,判断其是否为完全数 若一个自然数,恰好与除去它本身以外的
一切因数的和相等,这种数叫做完全数。
import java.util.Scanner; public class PerfectNumber { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scanner.nextInt(); if (isPerfectNumber(num)) { System.out.println(num + " 是完全数"); } else { System.out.println(num + " 不是完全数"); } } public static boolean isPerfectNumber(int num) { int sum = 0; for (int i = 1; i <= num / 2; i++) { if (num % i == 0) { sum += i; } } return sum == num; } }
-
图形输出
题目
请编写一个Java程序,实现下面图形的输出
markdown复制代码 * *** ***** ******* ***** *** *
public class DiamondPattern { public static void main(String[] args) { int n = 4; // 控制行数 for (int i = 1; i <= n; i++) { for (int j = 1; j <= n - i; j++) { System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); } for (int i = n - 1; i >= 1; i--) { for (int j = 1; j <= n - i; j++) { System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); } } }
-
分解质因数
题目
请编写一个Java程序,实现输入一个15以内的正整数,对该正整数进行分解质因数,输出该整数与质因
数的等式。
import java.util.Scanner; public class PrimeFactorization { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个15以内的正整数:"); int num = scanner.nextInt(); if (num <= 0 || num > 15) { System.out.println("输入的数字不在有效范围内"); } else { System.out.print(num + " = "); for (int i = 2; i <= num; i++) { while (num % i == 0) { System.out.print(i); num /= i; if (num != 1) { System.out.print(" * "); } } } } } }标签:case,九九乘法,Java,int,System,运算符,println,public,out From: https://blog.csdn.net/weixin_64506808/article/details/139402911