发表于: 2017-08-11 22:56:16
1 898
今天完成的任务
1.运算符
package secondday;
import java.util.Scanner;//使用Scanner函数需要导入
class Operator {
class NumericOperator{
/*
int i = 1;//i++; 先取值,再运算++i; 先运算,再取值
int j = ++i + i++ + ++i + ++i + i++;//
//(1+1)+2+1+(3+1)+(4+1)+5+1
//i=2 3 4 5 6
//j=2+2+4+5+5
System.out.println(j);//18
System.out.print(i);//6
Scanner bmi = new Scanner(System.in);//实例化这个对象
System.out.println("输入身高(m)");
float height = bmi.nextFloat();
System.out.println("输入体重(kg)");
float weight = bmi.nextFloat();
float theBmi=weight/(height*height);
System.out.println(theBmi);
*/}
class RelationOperator{
/*
int a = 5;
int b = 6;
int c = 5;
System.out.println(a>b); //返回 false
System.out.println(a>=c); //返回 true
System.out.println(a==b); //返回false
System.out.println(a!=b);//返回true
> 大于
>= 大于或等于
< 小于
<= 小于或等于
== 是否相等
!= 是否不等
关系运算符返回一个布尔变量
*/
}
class LogicalOperator{
/*
//长路与 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 & i++ ==2 ); //无论如何i++都会被执行,所以i的值变成了3
System.out.println(i);
//短路与 只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 1 && j++ ==2 ); //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
System.out.println( j== 1 && ++j ==2 ); //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
//都为真时,才为真 任意为假,就为假
//长路或 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 | i++ ==2 ); //无论如何i++都会被执行,所以i的值变成了3
System.out.println(i);
//短路或 只要第一个表达式的值是true的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 2 || j++ ==2 ); //因为j==2返回true,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
//都为假时,才为假任意为真,就为真
boolean b = true;
System.out.println(b); //输出true
System.out.println(!b);//输出false
//取反!真变为假 假变为真
boolean a = true;
boolean b = false;
System.out.println(a^b); //不同返回真
System.out.println(a^!b); //相同返回假
//异或^两值不同,返回真两值相同,返回假
/*
int i = 1;
boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);
!(i++==3) i=2 !false=true
true^(i++==2 true) i=3 false
(false&&) false 为短路与 后面不计入运算
System.out.println(b);
System.out.println(i);
*/
}
class AssignmentOperators{
/*
int i = 1;
i+=++i;
System.out,print(i);//i += ++i 等价于 i = i + ++i;i=1+2
*/
}
class TernaryOperator{
/*
int i = 5;
int j = 6;
int k = i < j ? 99 : 88;
// 相当于
if (i < j) { k = 99; } else { k = 88; }
System.out.println(k);
表达式?值1:值2
如果表达式为真 返回值1
如果表达式为假 返回值2
*/
}
public static void main(String[] args){
System.out.println("输入星期几");
Scanner s = new Scanner(System.in);//实例化这个对象
int i = s.nextInt();
int j=5;
String k=i<j?"工作日":"休息日";
System.out.println(k);
}
}
2.Scanner通过数值台输入
package secondday;
import java.util.Scanner;//使用Scanner函数需要导入
public class ScannerJava {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);//实例化这个对象
int i = s.nextInt();
System.out.println("读取的整数是"+ i);
String n = s.nextLine();//因为nextLine会接受上一个输入语句的一个转行字符\n,但是这个\n不会成为返回的字符
String a = s.nextLine();
System.out.println("读取的字符串是:"+a);
/*
System.out.println("请输入第一个整数");
int in1=s.nextInt();
System.out.println("您输入的整数是:"+in1);
System.out.println("输入浮点数:");
float fl1=s.nextFloat();
System.out.println("您输入的浮点数是:"+fl1);
System.out.println("输入字符串:");
String str1=s.next();
System.out.println("您输入的浮点数是:"+str1);
System.out.println("输入字符串:");
String str2=s.next();
System.out.println("您输入的浮点数是:"+str2);
System.out.println("请输入第一个整数");
int in2=s.nextInt();
System.out.println("您输入的整数是:"+in2);
*/
}}
/*
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数:"+a);
float b = s.nextFloat();
System.out.println("读取的浮点数的值是:"+b);
String c = s.nextLine();
System.out.println("读取的字符串是:"+c);
}
*/
明天要做的事,接着看下面的内容
遇到的问题:今天学习的内容比较简单,倒是没遇到什么解决不了的...
收获:i++和++i的各种骚操作实在是绕的我晕晕的,233
评论