【javase_day1】重点
关于字符强制转换:
byte/short/char->int->long->float->double
调换变量值:
-
中间值:(浪费内存)
int a=10;
int b=20;
int c=0;
c=a;
a=b;
b=c; -
加减运算:(可能溢出)
int a=10;
int b=20;
//交换两个变量的位置
a+=b;
b=a-b;
a=a-b; -
使用异或 ^:(仅限整数)
int a=10;
int b=20;
//交换两个变量的位置
a=a^b;
b=a^b;
a=a^b;
System.out.println(a>b?a:b); 三目运算符
循环:
for(①初始化语句;②循环条件;④自增(减)循环计数器){
③循环体
}
①初始化语句
while(②循环条件){
③循环体;
④自增(减)循环计数器
}
①初始化语句
do{
③循环体
④步进语句
}while(②循环条件);//at least work for a time
package day1_while;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class While_io {
public static void main(String[] args) {
InputStreamReader ins = new InputStreamReader(System.in);
BufferedReader bf = new BufferedReader(ins);
while(true) {
System.out.println("input what you guess from 0~9");
try {
if(Integer.parseInt(bf.readLine()) == (int)(Math.random()*10)){
System.out.println("you are right!");
break;
}
else {
System.out.println("plz guess again:");
}
}catch(Exception e) {
System.out.println("there may be something wrong!");
}
}
}
}
/* if we want to do circle continues, we can use while(true) to do until there is a break
of course when we use for we can do like that for(;true;)*/
//new? may be like initialize
/first read as stream then store in buffer, then use buffer.readline to get data. what inputed is string and Integer.parseInt() can
get that into int type./
java中循环上只有while和for循环可以省略掉花括号。
转移控制语句是当程序运行遇到下列关键字时需要进行跳转。常见类型如下
1、break;在循环代码块中用于立即结束其所在层的循环,继续执行下方代码。
2、continue;在循环代码中立即结束剩余循环代码块直接跳转到下一次循环。
3、return;当程序遇到return时会立即结束包含该语句的整个方法,继续执行该方法后的下方代码,在每个方法内部,return后面不能再写无效代码
4、System.exit;当程序遇到该语句时,直接跳转到改程序的结束位置,程序结束。
必须明确的事情是:break和continue只对循环有效,对if判断语句无效。
double d = 12.345;
String s = “TestString!”;
int i = 1234;
//"%“表示进行格式化输出,”%“之后的内容为格式的定义。
System.out.printf(”%f\n",d);//“f"表示格式化输出浮点数。 后面的\n表示换行
System.out.printf(”%6.2f\n",d);//“6.2"中的6表示输出的长度,2表示小数点后的位数,符合四舍五入,默认右对齐。
System.out.printf(”%+9.2f\n",d);//"+“表示输出的数带正负号。
System.out.printf(”%-9.4f\n",d);//"-“表示输出的数左对齐(默认为右对齐)。
System.out.printf(”%±9.3f\n",d);//“±"表示输出的数带正负号且左对齐。
System.out.printf(”%d\n",i);//“d"表示输出十进制整数。
System.out.printf(”%o\n",i);//“o"表示输出八进制整数。
System.out.printf(”%x\n",i);//“d"表示输出十六进制整数。
System.out.printf(”%#x\n",i);//“d"表示输出带有十六进制标志的整数。
System.out.printf(”%s\n",s);//"d"表示输出字符串。
System.out.printf(“输出一个浮点数:%f,一个整数:%d,一个字符串:%s\n”,d,i,s);//可以输出多个变量,注意顺序。
System.out.printf("字符串:%2
s
,
s,%1
s,d的十六进制数:%1KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲x\n",i,s);//"X"表示第几个变量。