一.纠错
1、设计一段程序,输出一个数字字符转成字符中的数字,例如 '0'需要输出数字0
public class Variable4 { public static void main(String[] args) { char a = '9'; int num = a - '0'; System.out.println(num); } }
二.位运算符
1.注意事项:
(1).位运算符是针对两个整型变量的运算。
(2).位运算,先求补码再进行&,|,^(异或:相同为0,相反为1),~
(3).异或的特殊点:一个数字和另外一个数字异或两次肯定得到自己。
2.例子
3.移位运算符(位移运算符):
(1).概念:将补码中的每一位向左,向右移动指定的位数。
(2).
<< :每向左移动一位,相当于乘2。
>>:每向右移动一位,相当于除以2。
>>>:无符号右移,最高位补0。
(3).例子
(4).面试题:如何高效率的计算2*8 2<<3(2左移3)
三.运算符的优先级
1.一元运算符 > 二元运算符 > 三元运算符
2.算术运算符: * / % > +
3.逻辑运算符: & > |
4.赋值运算符的优先级最低。
5.字符串
四.从控制台输入
1.首先需要加上import java.util.Scanner 固定语句:Scanner scanner = new Scanner(System.in);
2.输入字符类型
3.例题
五.流程控制
1.程序的执行结构
(1).顺序结构:代码从上往下,逐行依次执行。是程序执行的默认结构。
(2).分支结构:程序在某一个节点上遇到了多种向下执行的可能性,根据条件,选择一个分支继续执行。
(3).循环结构:某一段代码需要被重复执行多次。
2.分支结构
(1).if-else
(2).switch
3.循环结构 for
4.局部变量
概念:定义在某一个代码中的变量,其作用域是这个变量的生效范围,其作用域是从声明这个变量开始,到声明所在的代码段结束。
六.作业
1.从控制台输入一个数字,判断这个数字是不是一个水仙花数。
package day2;
import java.util.Scanner;
public class Variable1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
if(a > 100){
int h = a/100;
int t = (a%100)/10;
int o = a%10;
if((h*h*h)+(t*t*t)+(o*o*o) == a)
System.out.println("这个数是水仙花数");
else
System.out.println("这个数字不是水仙花数");
}
}
}
2.从控制台输入一个字符,如果这个字符是大写字母,转成小写字母输出;如果这个字符是小写字母,转成大写字母输出;如果不是字母,原义输出。
package day3;
import java.util.Scanner;
public class Variable2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char c = scanner.nextLine().charAt(0);
if(c > 'A'&& c < 'Z')
System.out.println((char)(c+32));
else if(c > 'a'&& c < 'z')
System.out.println((char)(c-32));
else
System.out.println(c);
}
}
3.从控制台输入一个成绩,成绩在[0,60)范围内,输出C;成绩在[60,80)范围内,输出B;成绩在[80,100]范围内,输出A。
package day3;
import java.util.Scanner;
public class Variable3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
if(a >= 0 && a < 60)
System.out.println("C");
else if(a >= 60 && a < 80)
System.out.println("B");
else if(a >= 80 && a <= 100)
System.out.println("A");
else
System.out.println("输入有误!");
}
}
4.从控制台输入两个英文字母,输出这两个英文字母之间的所有字母(包含大小写)
package day3;
import java.util.Scanner;
public class Variable4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char c1 = scanner.nextLine().charAt(0);
char c2 = scanner.nextLine().charAt(0);
if(c1 >= 'A' && c1 <= 'Z' && c2 >= 'A' && c2 <= 'Z'){
for (char a=(char)(c1+1);a < c2;a++){
System.out.print(a);
System.out.println((char)(a+32));
}
}
else if(c1 >= 'a' && c1 <= 'z' && c2 >= 'a' && c2 <= 'z'){
for (char a=(char)(c1+1);a < c2;a++){
System.out.print(a);
System.out.println((char)(a-32));
}
}
else
System.out.println("输入有误!");
}
}
5.输出所有的水仙花数。
package day3;
public class Variable5 {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int h = i/100;
int t = (i%100)/10;
int o = i%10;
if((h*h*h)+(t*t*t)+(o*o*o) == i)
System.out.println(i);
}
}