2013-03-05 34 views
6

Tôi đang cố gắng đọc một dòng và sau đó đi vào một câu lệnh if. Nhưng sau khi nó có màu đỏ đầu vào đầu tiên nó chỉ chấm dứt. Tôi không có ý tưởng gì sai, và tôi không thể hình dung nó raMáy quét không quét đầu vào của tôi

import java.util.Scanner; 

public class mainen { 

    public static void main(String[] args) { 
     Formler form = new Formler(); 
     Scanner Sscan = new Scanner(System.in); 
     Scanner Dscan = new Scanner(System.in); 
     String input; 
     System.out.println("Formler: Molmassa"); 
     input = Sscan.nextLine(); 

     if(input == "molmassa" || input == "Molmassa"){ 
      double m; 
      double M; 
      System.out.println("Massa: "); m = Dscan.nextDouble(); 
      System.out.println("Molmassa: "); M = Dscan.nextDouble(); 
      System.out.println(form.getMolmassa(m, M)); 
     } 
    } 

} 
+1

So sánh chuỗi của bạn sai. Thay vào đó hãy sử dụng 'input.equals (" molmassa ")'. – Henrik

Trả lời

3
if(input == "molmassa" || input == "Molmassa"){} 

Bạn phải bằng String đối tượng với equals phương pháp hoặc equalsIgnoreCase phương pháp.

if(input.equalsIgnoreCase("Molmassa")){} 

== được sử dụng để kiểm tra cân bằng nguyên thủy.

9

Thay đổi tuyên bố của bạn if tới:

if(input.equalsIgnoreCase("molmassa")) { } 

Sau đó, nó sẽ làm việc như bạn mong đợi. Hãy nhớ luôn so sánh các chuỗi bằng cách sử dụng phương thức equals() hoặc equalsIgnoreCase(). == so sánh các tham chiếu đối tượng không phải giá trị thực tế.

4

Bạn cần phải thay thế bằng chi phiếu:

if(input == "molmassa" || input == "Molmassa"){ 

như sau;

if(input.equals("molmassa") || input.equals("Molmassa")){ 

Các kiểm tra đầu tiên nếu String s là cùng một đối tượng, trong khi kiểm tra thứ hai mà họ là những giá trị như nhau, đó là những gì bạn cần ở đây.

4

Vấn đề là ở bạn if tình trạng thay đổi nó để

if(input.equalsIgnoreCase("molmassa)) 

và mọi điều sẽ làm việc tốt.

Một điều nữa bạn không cần phải có riêng Scanner lấy Stringdouble đầu vào bạn có thể sử dụng một trong Scanner đối tượng cho cả đầu vào.

Các vấn đề liên quan