题目是如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。
我 自己用if写了个
import java.util.Scanner;
public class haishi{
public static void main (String[]args){
         String name;
         int i=123;
        
         Scanner sc=new Scanner(System.in);
         System.out.println("请输入你的姓名:");
         name=sc.next();
         if(name=="青"){
          
          System.out.println("请输入你的密码:");
         i=sc.nextInt();
         if (i==123){
          System.out.println("欢迎你,青");
         }else {
          System.out.print("对不起,你不是青");
         }
       }
         else {
          System.out.print("对不起,你不是青");
         }

}
}
这个最后结果是~不管我输入什么字都是输出“对不起,你不是青”
我自己检查了下估计是  if(name=="青"){   
                    ******
      }else {
          System.out.print("对不起,你不是青"); 这里有问题但是不知道怎么改
后来我用switch又写了个
import java.util.*;
public class wangyang{
public static void main (String[]args){
         String name;
         int i;
         String z;
         Scanner sc=new Scanner(System.in);
         do{
         System.out.println("请输入您的用户名:");
         name = sc.next();
      
       
      System.out.println("请输入您的密码:");
      i=sc.nextInt();
       
        switch(i){
       case 123: 
         System.out.println("欢迎你,青");
            break;
       default:
         System.out.println("对不起,你不是青");
        }
        System.out.println("是否继续使用:y/n");
      
        z=sc.next();
      
       } while(!z.equals("n"));
       }
}这次倒是可以正常输出了~但是 无论我的 name==什么 只要密码 i==123 都输出“欢迎你,青”
这个让我郁闷了 很久~想了很多办法 不是出现第1段程序的那种错误,就是出错~~~
各位大哥大姐高手救救我吧
  

解决方案 »

  1.   

     if(name=="青"){ 
    字符串应该用equls
    if(name.equls("青"))
      

  2.   

    第一段代码里的 if(name=="青"){ 
    改成if(name.equals"青")
    //String并不是基本类型,而是一个对象,比较的时候要用equals方法
      

  3.   

    谢谢这位大大~~~不过似乎  应该是 if(name.equals("青"))
    问题解决了~~~非常感谢
      

  4.   


    你是第一个回答我的 谢谢这位大大~~~不过似乎  应该是 if(name.equals("青")) 
    问题解决了~~~非常感谢
      

  5.   

    第2段代码里你完全没判断姓名是什么
       do{ 
            System.out.println("请输入您的用户名:"); 
            name = sc.next(); 
          
          
        System.out.println("请输入您的密码:"); 
        i=sc.nextInt(); 
          
            switch(i){ 
          case 123: 
    直接就是输入姓名和密码,之后就判断密码等于123就打印成功,你没判断姓名,所以输入什么姓名都是没用
     System.out.println("请输入您的用户名:"); 
            name = sc.next(); 
          if(!name.equals("青"))
          {
           System.out.print("你不是青");
           z="n";
           break;
          }
    在姓名后加个判断就可以了
      

  6.   

    第2段我用过if(name=="青"){
    但是错了~~·所以就没写上来~~·
    初学者嘛~~~