写代码中出现的问题啊总结(JAVA中的简单循环)
1.equals和==之间的区别
一、是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同
二、是指对内存地址进行比较 , equals()是对字符串的内容进行比较
三、``指引用是否相同, equals()指的是值是否相同
package IF;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入今天星期叽");
int Day_S = input.nextInt();
if(Day_S==1){
System.out.println("吃鸡排");
}
else if(Day_S ==2){
System.out.println("吃牛肉");
}
else if(Day_S ==3){
System.out.println("吃炒饭");
}
else{
System.out.println("吃屁");
}
}
}
如上所示,使用IF与ELSE IF 来进行输入,返回结果值,
但是是否可以输入汉字 如:星期一
if(Day_S=="吃鸡排"){
System.out.println("吃鸡排");
}
则会报错 :java: 不可比较的类型: int和java.lang.String
无法进行直接比较 原因是String类型和Int类型不允许比较
接下来讲Day_s定义为string类型
则会出现 无论输入什么都会直接跳到else里面的内容,因为无法进行比较
所以我们需要使用equals来解决问题
System.out.println("请输入今天星期叽");
String Day_S = input.next();
if("星期一".equals(Day_S)){
System.out.println("吃鸡排");
}
else if("星期二".equals(Day_S)){
System.out.println("吃牛肉");
}
else if("星期三".equals(Day_S)){
System.out.println("吃炒饭");
修改为这样后即可使用
问题解决!
2.是否可以在switch函数后的case中使用汉字
package IF;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入需要判断的月份:");
String mouth = input.next();
switch (mouth){
case "一月":
System.out.println("1月是冬天");
break;
case "二月":
System.out.println("2月是冬天");
break;
case "san月":
System.out.println("3月是春天");
break;
case "si月":
System.out.println("4月是春天");
break;
case "wu月":
System.out.println("5月是春天");
break;
case "liu月":
System.out.println("6月是夏天");
break;
case "qi月":
System.out.println("7月是夏天");
break;
case "ba月":
System.out.println("8月是夏天");
break;
case "jiu月":
System.out.println("9月是秋天");
break;
case "shi月":
System.out.println("10月是秋天");
break;
case "shiyi月":
System.out.println("11月是秋天");
break;
case "shi二月":
System.out.println("12月是冬天");
break;
default:
System.out.println("输入错误!");
break;
}
}
}
事实证明!可以,但是要提前注释变量的类型为STRING;
此外,字符之间的比较需要用equals
3.打印三角形以及倒三角型
用到for循环以及其嵌套
外层的FOR用来控制行的数量,里面的FOR用来控制列
for(1;2;3)
2判定式 用来控制列的输出
如下所示:
package For;
public class Test2 {
public static void main(String[] args) {
for (int x = 0; x < 10; x++) {
for (int y = 0; y <= x; y++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("____________分界线_____________");
for (int x = 0; x < 10; x++) {
for (int y = 9; y >= x; y--) {
System.out.print("*");
}
System.out.println();
}
}
}
输出结果为
*
**
***
****
*****
******
*******
********
*********
**********
____________分界线_____________
**********
*********
********
*******
******
*****
****
***
**
*
当时感觉好像有问题
现在整理过了好像又不知道哪里难
所以详细的也写不出来了;就这样8